{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ML_in_Finance_LSPI_Markowitz\n",
    "# Author: Matthew Dixon\n",
    "# Version: 1.0 (06.05.2020)\n",
    "# License: MIT\n",
    "# Email: matthew.dixon@iit.edu\n",
    "# Notes: tested on Mac OS X with Python 3.6.9 and the following packages:\n",
    "# matplotlib=3.1.3, pandas=1.0.3, numpy=1.18.1, scipy=1.4.1, bspline=0.1.1\n",
    "# Citation: Please cite the following reference if this notebook is used for research purposes:\n",
    "# Bilokon P., Dixon M.F. and Halperin I., Machine Learning in Finance: From Theory to Practice, Springer Graduate textbook Series, 2020. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mean-Variance Optimization with risky asset and cash"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "from scipy.interpolate import interp1d\n",
    "from scipy.stats import norm\n",
    "\n",
    "from bspline import Bspline, splinelab\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameters for MC simulation of stock prices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "S0 = 100 # Initial stock price\n",
    "mu = 0.03 # Drift\n",
    "sigma = 0.20 # Volatility\n",
    "r = 0.01 # Risk-free rate\n",
    "M = 1 # Maturity\n",
    "\n",
    "T = 30 # Number of time steps\n",
    "delta_t = M / T # Time interval\n",
    "\n",
    "N_MC = 2000 # Number of paths\n",
    "\n",
    "gamma = np.exp(- r * delta_t) # Discount factor\n",
    "lmbda = 10.0 # Risk aversion\n",
    "alpha = 1.0 # Learning rate"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Stock price\n",
    "S = pd.DataFrame([], index=range(1, N_MC+1), columns=range(T+1))\n",
    "S.loc[:, 0] = S0\n",
    "\n",
    "# Standard normal random numbers\n",
    "RN = pd.DataFrame(np.random.randn(N_MC, T), index=range(1, N_MC+1), columns=range(1, T+1))\n",
    "\n",
    "for t in range(1, T+1):\n",
    "    S.loc[:, t] = S.loc[:, t-1] * np.exp((mu - 1/2 * sigma**2) * delta_t + sigma * np.sqrt(delta_t) * RN.loc[:, t])\n",
    "    \n",
    "    # Or, using Euler for alpha-stable distributions:\n",
    "    #S.loc[:, t] = S.loc[:, t-1]*(1 + mu*delta_t + sigma *S.loc[:,t-1]**(alpha-1)*np.sqrt(delta_t) * RN.loc[:,t])\n",
    "\n",
    "# Plot 10 paths\n",
    "step_size = N_MC // 10\n",
    "idx_plot = np.arange(step_size, N_MC, step_size)\n",
    "plt.plot(S.T.iloc[:, idx_plot])\n",
    "plt.xlabel('Time Steps')\n",
    "plt.title('Stock Price Sample Paths')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "$$C_t = -R_t= -r_t  + \\lambda (r_t-\\mu)^2  =  -(1-u_t)r_f - u_t  \\phi_t  +  \\lambda u_t^2 Var(\\phi_t | S_t)$$ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def negative_reward(mu, var, a, rf, lmbda):\n",
    "    C = -(1-a)*rf - a*mu + lmbda*(a**2)*var\n",
    "    return C"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  Define spline basis functions  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = S # set the wealth (but not the total wealth) of the portfolio to be the stock price\n",
    "p = 4 # order of spline (as-is; 3 = cubic, 4: B-spline)\n",
    "ncolloc = 16\n",
    "a_min = -1\n",
    "a_max = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_basis_functions(X_min, X_max, a_min, a_max, ncolloc, p=3):\n",
    "    tau_x = np.linspace(X_min, X_max, ncolloc)  # These are the sites to which we\n",
    "    tau_a = np.linspace(a_min, a_max, ncolloc)  # would like to interpolate\n",
    "\n",
    "    # k is a knot vector that adds endpoints repeats as appropriate for a spline of order p\n",
    "    # To get meaninful results, one should have ncolloc >= p+1\n",
    "    k_x = splinelab.aptknt(tau_x, p)\n",
    "    k_a = splinelab.aptknt(tau_a, p)\n",
    "                             \n",
    "    # Spline basis of order p on knots k\n",
    "    basis_x = Bspline(k_x, p)\n",
    "    basis_a = Bspline(k_a, p)\n",
    "    return basis_x, basis_a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Make data matrices with feature values\n",
    "\n",
    "\"Features\" here are the values of basis functions at data points\n",
    "The outputs are 3D arrays of dimensions num_tSteps x num_MC x num_basis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_t_steps = T + 1\n",
    "num_basis =  ncolloc**2 \n",
    "\n",
    "data_mat_t = np.zeros((num_t_steps, N_MC, num_basis ))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2000,)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = X.values[:, 0]\n",
    "np.shape(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compute the optimal Q-function with the DP approach "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Coefficients for expansions of the optimal Q-function $Q_t^\\star\\left(X_t,a_t^\\star\\right)$ are solved by\n",
    "\n",
    "$$W_t=\\mathbf S_t^{-1}\\mathbf M_t$$\n",
    "\n",
    "where $\\mathbf S_t$ and $\\mathbf M_t$ are matrix and vector respectively with elements given by\n",
    "\n",
    "$$S_{nm}^{\\left(t\\right)}=\\sum_{k=1}^{N_{MC}}{\\Phi_n\\left(X_t^k,a_t^k\\right)\\Phi_m\\left(X_t^k,a_t^k\\right)}\\quad\\quad M_n^{\\left(t\\right)}=\\sum_{k=1}^{N_{MC}}{\\Phi_n\\left(X_t^k,a_t^k\\right)\\left(C\\left(X_t^k,a_t^k,X_{t+1}^k\\right)+\\gamma\\min_{a_{t+1}\\in\\mathcal{A}}Q_{t+1}^\\star\\left(X_{t+1}^k,a_{t+1}^k\\right)\\right)}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Define function *function_S* and *function_M* to compute the value of matrix $\\mathbf S_t$ and vector $\\mathbf M_t$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def function_S_vec(t, data_mat_t):\n",
    "    # Compute the matrix S_{nm} \n",
    "    X_mat = data_mat_t[t, :, :]\n",
    "    num_basis_funcs = X_mat.shape[1]    \n",
    "    S_mat = np.dot(X_mat.T, X_mat)\n",
    "    return S_mat\n",
    "\n",
    "def function_M_vec(t, Q, R, data_mat_t, gamma=0.1):\n",
    "    X_mat = data_mat_t[t,:,:]\n",
    "    tmp = R + gamma * np.min(Q[:, t+1])  # note that the second argument in Q is t+1\n",
    "    M = np.dot(X_mat.T, tmp)\n",
    "    return M"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Least Squares Policy Iteration\n",
    "Call *function_S* and *function_M* for $t=T-1,...,0$ together with basis function $\\Phi_n\\left(X_t,a_t\\right)$ to compute optimal action Q-function $Q_t^\\star\\left(X_t,a_t^\\star\\right)=\\sum_n^N{\\omega_{nt}\\Phi_n\\left(X_t,a_t^\\star\\right)}$ backward recursively with terminal condition $Q_T^\\star\\left(X_T,a_T=0\\right)=0$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Initialize data structures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "mu = np.zeros(T)\n",
    "var = np.zeros(T)\n",
    "\n",
    "# optimal action\n",
    "a_opt = np.zeros((N_MC, T))\n",
    "a_star = pd.DataFrame([], index=range(1, N_MC+1), columns=range(T+1))\n",
    "a_star.iloc[:, -1] = 0\n",
    "\n",
    "# optimal Q-function with optimal action\n",
    "max_Q_star = np.zeros((N_MC, T))\n",
    "\n",
    "a_mean = []"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### initialize actions in feasible region [0, a_max]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid_size_x = 20\n",
    "grid_size_a = 500 \n",
    "\n",
    "# set up a small grid, sufficiently nested inside the support of the basis functions\n",
    "a_min_prime = a_min + 0.1\n",
    "a_max_prime = a_max - 0.1\n",
    "\n",
    "a_grid = np.linspace(a_min_prime, a_max_prime, grid_size_a)\n",
    "\n",
    "Q_star = np.zeros((N_MC, T))\n",
    "tau = 1e-6\n",
    "a = a_min_prime + (a_max_prime - a_min_prime) * np.random.rand(N_MC)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are *grid_size_x* $\\times$ *grid_size_a* inner grid points and 256 basis functions. Let $(k,l)$ denote the indices of the smaller grid $\\Omega^h$. Let $(i,j)$ denote the indices of the knot points of the basis functions. If you sum over the last index, then you can check the interpolation of ones\n",
    "$$f(x_k,a_l)=\\sum_{ij} \\Phi(x_k,a_l)f_{ij}$$\n",
    "check if $f_{ij}=1$ everywhere\n",
    "$$f(x,a)=\\sum_{ij} \\Phi(x,a)1 =1, \\forall x,a ?$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### The backward loop\n",
    "\n",
    "*Make sure to rerun cells under the heading* **'Initialize data structures'** *to reset the initial conditions before running this cell*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "9.589715873026556e-09\n",
      "count, Q error, E[R], E[a]\n",
      "0 0.3799237563429483 -0.0066974145701930365 -0.32283906460322426\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00091924408066657\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.31194797415906694 -0.011318198513892945 -0.3227677342869836\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012425559391558807\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0011991119836679278 -0.011318291571449974 -0.32271490612952836\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008158436889721747\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.001782839653466161 -0.011318316172432834 -0.32268252602454073\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002588744130261351\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0007523220430130174 -0.011318330267359417 -0.32267302350285354\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003179840978594656\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0003419910854900191 -0.011318338213180418 -0.32266251106331784\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0037201697962689095\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0005558499099165972 -0.011318345487823619 -0.3226476916668613\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003206533760464375\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.000548651314183339 -0.011318355160294906 -0.3226548059856896\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001164441490438564\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.00026090204466365583 -0.011318365658665931 -0.32265749314458597\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015610812159165264\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00011981079867483899 -0.01131837508714011 -0.32265514289883196\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012578962161047722\n",
      "count, Q error, E[R], E[a]\n",
      "10 8.43581531556312e-05 -0.011318380404527094 -0.3226544209033275\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006928923590087297\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.00010520629462093217 -0.011318381689007792 -0.32265168075436157\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002182756714833956\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.00020152504325102747 -0.011318381703928359 -0.32264611508333296\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008447015331636581\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.00023665227031824938 -0.011318381732831596 -0.3226457769184498\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011234200957863988\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.00020725931834224168 -0.011318381736425529 -0.32264520843743455\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002276055504235151\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.00013191738197142867 -0.011318381737238483 -0.32264076778425027\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0009270608560903287\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.00019805110877093402 -0.011318381751693855 -0.32264068364947585\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015595294226354902\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.00010539933943659388 -0.011318381752339086 -0.322640673161363\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0024540509025102364\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.00032043334923647395 -0.011318381752356775 -0.3226398638770555\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002130534601147036\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.00011828943423696826 -0.01131838175441601 -0.322639881030635\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001305224770143129\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0002482061790042082 -0.011318381754417654 -0.32263601947107523\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012867274414551351\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.0002591366366770631 -0.011318381766804882 -0.3226364002376896\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005021331615557856\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.00019001139156970756 -0.011318381768238465 -0.3226353635893775\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0029035723817141296\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.00025724423685068046 -0.011318381771207737 -0.32263526995366715\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0014296098993483142\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.00014085084540929038 -0.011318381771628507 -0.3226350591423939\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001938007154807785\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.00012236313170789538 -0.011318381772060203 -0.3226350531707277\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001614440439021444\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.0002872012980020565 -0.011318381772061365 -0.3226350531707277\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001614440439021444\n",
      "count, Q error, E[R], E[a]\n",
      "27 0.0 -0.011318381772061365 -0.3226350531707277\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002639329020975192\n",
      "count, Q error, E[R], E[a]\n",
      "0 1.033019220247993 -0.01178277151623664 -0.36856720186308267\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011199776465837434\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0013654307037174833 -0.011808622844566028 -0.3664765005008659\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0033209724804237908\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00027366673267478135 -0.011808764304405632 -0.36631114919752944\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001676618011120497\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.00028127192989734054 -0.011808782650580064 -0.3661397561856412\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012854967435683037\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0011940962521179857 -0.011808794006093916 -0.36615191460600816\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0031799178975344396\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0012507633157042171 -0.01180879405632162 -0.3661894977091526\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.020968557754434906\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0015721454092054799 -0.011808794240931163 -0.3661989573625797\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00852342555488945\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0024259152364023403 -0.01180879431403642 -0.3662005189013902\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00389659220496711\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0009035969428261093 -0.01180879432715405 -0.3662013632797317\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006474552160042865\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0005828111650812978 -0.011808794331760141 -0.3662052523504676\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0028610910162286305\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0006226557139204994 -0.011808794354749297 -0.3662059149982606\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011584858146641882\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0002724500711490694 -0.011808794430993228 -0.36641510563654306\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00010509140433439878\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.00014538299440996954 -0.011808798815624251 -0.36641774358155976\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0004157402506847375\n",
      "count, Q error, E[R], E[a]\n",
      "13 3.521183450793375e-05 -0.01180880068061547 -0.36645062854156557\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006611050392977248\n",
      "count, Q error, E[R], E[a]\n",
      "14 9.12722316640037e-05 -0.011808808092955609 -0.36646082297428234\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00013626749524083115\n",
      "count, Q error, E[R], E[a]\n",
      "15 7.98841554224825e-05 -0.011808812271521122 -0.36646443018871117\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00010748034333163086\n",
      "count, Q error, E[R], E[a]\n",
      "16 2.3875028344764894e-05 -0.011808814771622222 -0.36646803091514946\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005834121750309966\n",
      "count, Q error, E[R], E[a]\n",
      "17 5.26968749548361e-05 -0.011808816571377284 -0.36644803210412435\n",
      "residual error: ||r||=||Sw-M||\n",
      "5.3748973860575204e-05\n",
      "count, Q error, E[R], E[a]\n",
      "18 5.6553185369650706e-05 -0.011808817736007693 -0.36644986524150014\n",
      "residual error: ||r||=||Sw-M||\n",
      "6.985803846712432e-05\n",
      "count, Q error, E[R], E[a]\n",
      "19 1.3894235887305522e-05 -0.011808818198491399 -0.36644986524150014\n",
      "residual error: ||r||=||Sw-M||\n",
      "6.985803846712432e-05\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0 -0.011808818198491399 -0.36644986524150014\n",
      "residual error: ||r||=||Sw-M||\n",
      "4.4080367247660333e-05\n",
      "count, Q error, E[R], E[a]\n",
      "0 1.5509659996945993 -0.011560376642575938 -0.365312619883156\n",
      "residual error: ||r||=||Sw-M||\n",
      "5.125082483470914e-05\n",
      "count, Q error, E[R], E[a]\n",
      "1 5.604132765255482e-05 -0.011560561119825787 -0.35805639325040733\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0003135399540173293\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00010740624454233379 -0.011561434958139511 -0.33470765260579993\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.000432680493184266\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0003621895112977324 -0.011568801378506107 -0.3373699034248758\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0002875230939163649\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00016080507989600664 -0.011570181193105267 -0.3393609101879695\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001269750696302247\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0001990961874022956 -0.011570282439080884 -0.33988509187332533\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0003389905157694865\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0001906397868867622 -0.011570291566051629 -0.3403829922559577\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00025267234660798446\n",
      "count, Q error, E[R], E[a]\n",
      "7 1.1113583682120476e-05 -0.01157029770895435 -0.34038213840396214\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.00022689623658292307\n",
      "count, Q error, E[R], E[a]\n",
      "8 4.67879789623155e-05 -0.011570298802261361 -0.34038213840396214\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00022689623658292307\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0 -0.011570298802261361 -0.34038213840396214\n",
      "residual error: ||r||=||Sw-M||\n",
      "3.08481836721351e-05\n",
      "count, Q error, E[R], E[a]\n",
      "0 2.055454264645964 -0.011282092734063867 -0.32647702686151064\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003700538380499645\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0004956651211098581 -0.011288143221037807 -0.32646625502774884\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01594988618638687\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0020598667263469262 -0.011288148510056885 -0.3264554379977206\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010007199424421692\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0026058251821432354 -0.011288152866867088 -0.3264451350669475\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00937839172599588\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0016289300770538895 -0.011288156234363437 -0.3264397183894419\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012172637245658932\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.002233108442034713 -0.011288157624218802 -0.3264397183894419\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012172637245658932\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0 -0.011288157624218802 -0.3264397183894419\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05723389987525722\n",
      "count, Q error, E[R], E[a]\n",
      "0 2.5954354492973875 -0.011816732346119045 -0.33261884617224974\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0017359265829382008\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0060752204150067435 -0.011821775686597483 -0.35865920396679835\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008060724074509067\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0011217119851672508 -0.011842367364351396 -0.3689413725943733\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004093868122600141\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0001570484216227996 -0.011846008465634928 -0.37140595978609053\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003379431533244909\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.000538104735779649 -0.01184648214530852 -0.3729164010957823\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005492215609244307\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00034139970361099465 -0.011846598676696877 -0.37291888922849753\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0022997976201175586\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.000266030725274733 -0.011846598699171863 -0.3729328291993027\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0004663793493292554\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.00024357538635976867 -0.011846603777843157 -0.37294063459542237\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004676727672132876\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.00045588704115878784 -0.011846605211622438 -0.3729821437156884\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0003203590678682664\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00045511606531027253 -0.011846606939224255 -0.3729584135247615\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00010690321665238675\n",
      "count, Q error, E[R], E[a]\n",
      "10 3.1276300679863925e-05 -0.011846607478906196 -0.3729584135247615\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00010690321665238675\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0 -0.011846607478906196 -0.3729584135247615\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0018629569014492647\n",
      "count, Q error, E[R], E[a]\n",
      "0 3.1107425577670207 -0.01156544587392474 -0.3471400417997771\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003484574634458362\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0009598764368655674 -0.011574999627214595 -0.331568969024411\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00011007328504352512\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0004477529367955835 -0.011579930044060542 -0.3373106322315748\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010259627238070659\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.001009821017701282 -0.011583158657768941 -0.33756944835578356\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03350828576191561\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.001871573901296693 -0.011583221921580716 -0.3374021014547583\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012087109031679111\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0018327775306624992 -0.011583243481777318 -0.33739640307255003\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006058170000026268\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0015261450076321154 -0.01158324654979713 -0.33736873444758886\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0050077264728794505\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0007772180118099237 -0.011583247806503773 -0.3373616283789713\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003967668891257803\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0005813993380300036 -0.01158324844692451 -0.3373968603286427\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0038163710236151656\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0009307434376274657 -0.011583248668170513 -0.337389156465485\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004477707744104892\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.000810293992078944 -0.011583249331255225 -0.3373886477677654\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00907561497539263\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0014941353794302994 -0.011583249334315794 -0.33738803750958596\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0076548043713449716\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.0011450204696838578 -0.011583249391490124 -0.3373458674319776\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.017073513020438313\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.002570891629954466 -0.011583249922092155 -0.33733939495644727\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.058641745663699944\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.005969252180615939 -0.011583250194047122 -0.3373449520228318\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03987826180008565\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.004099975802884135 -0.011583250269967706 -0.3373444597355344\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05420234439543879\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.001688888140370443 -0.011583250271949282 -0.3373229645910178\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03779821276092727\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.006697893399139829 -0.011583251273563322 -0.337322807474705\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.030129376984483498\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.004556336801446948 -0.011583251273688413 -0.33732241310410943\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011658975526088765\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0025716790007679242 -0.011583251274005474 -0.3372813779599047\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04187275559390417\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0026364280017196996 -0.011583251844373602 -0.3372812763967187\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08408573628950199\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.005402404411951899 -0.011583251844445728 -0.3372816323957415\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.15929368002269273\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.018047851550570267 -0.011583251845344561 -0.33728164435358055\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07201100742169282\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.008296335639737213 -0.011583251845349822 -0.3372814351712427\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09726227938425407\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.013114937982432193 -0.011583251845596514 -0.33728183323868516\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.1079358833040952\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.015713880951005406 -0.011583251848947635 -0.33728183323868516\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.1079358833040952\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.0 -0.011583251848947635 -0.33728183323868516\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07835723623721609\n",
      "count, Q error, E[R], E[a]\n",
      "0 3.621671143279842 -0.011423499487086384 -0.33327380540728624\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0002473063552052172\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.006594684965442584 -0.011423748176671933 -0.3315411524913708\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011540839150567272\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00029368700285728884 -0.011424063474082079 -0.3304859396585106\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011619342672707352\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0005346805906448795 -0.011424134779919161 -0.3305230634208814\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005338476729733389\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00047614089127153683 -0.011424140975348641 -0.33015721240381013\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007687870839163671\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0011418522855819475 -0.011424153888906887 -0.3301357181997249\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0031834293181696575\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0010183245814756204 -0.011424155077399384 -0.33013782192999075\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.014796649467882216\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0013405414931678833 -0.011424155264024637 -0.3301392745459945\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.019031000634247303\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.002612252584172308 -0.011424155266503814 -0.33013929747151816\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.007738474704867242\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.001401620996492432 -0.011424155266539976 -0.3301393067300071\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0045589778380273095\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0005194392087286992 -0.011424155266586385 -0.33013980226738227\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05399724033608977\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.00466594909661349 -0.011424155267283248 -0.3301460121834099\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007894960040458606\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.00493093552786838 -0.011424155293590895 -0.33014779124035304\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023625935287179788\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0025123499123569384 -0.011424155296859218 -0.3301512703353749\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.017514141268313865\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.0012805249169629057 -0.011424155300620726 -0.3301514405717072\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008200574521067535\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.0018773218088247907 -0.011424155300675021 -0.33015597463002744\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009905921034755585\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0018164143291650482 -0.01142415530809588 -0.3301572584544672\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004137340720757986\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.001840120048109841 -0.011424155311412033 -0.3301603791977718\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009996038855844297\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.0012784964612417354 -0.011424155318763247 -0.33016184241364493\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.014192573392222702\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0020821837052207226 -0.011424155327126394 -0.330162544099379\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010017118362373054\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0017706369531594918 -0.011424155328775016 -0.33016309954778533\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009325367330471275\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.0012927759381705464 -0.011424155329530691 -0.33016309954778533\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009325367330471275\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0 -0.011424155329530691 -0.33016309954778533\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003469844478768349\n",
      "count, Q error, E[R], E[a]\n",
      "0 4.147409163488992 -0.011670619279301148 -0.3549932701631987\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001181475331373235\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0005731389333647751 -0.01167804622950743 -0.35455798945204825\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003190045496770806\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00039505353260084426 -0.011678527357538911 -0.3543903700261378\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00697826286833534\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0004216858501216811 -0.011678615925379297 -0.3546936043702523\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003654119628589668\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0004347120214976065 -0.01167863762281527 -0.3546093748731598\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015925218699417902\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00023645647194776387 -0.01167864344059519 -0.35484803470380955\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008181645294359852\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0008332686287613042 -0.011678648990815985 -0.354859912925987\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0066260408142228425\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0005982207864679476 -0.011678653018050515 -0.35495384960782994\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012008134486022981\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0008881197714984814 -0.011678657573693229 -0.35493680731294697\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008622928547789929\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00014426432139495935 -0.011678658654502851 -0.35497083924247047\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001443044536325827\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.00010690139378567693 -0.011678660992668954 -0.35497062234172044\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00010473564202578026\n",
      "count, Q error, E[R], E[a]\n",
      "11 4.1474504609738444e-05 -0.011678660994888455 -0.35497055594253546\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0002449655246738623\n",
      "count, Q error, E[R], E[a]\n",
      "12 4.7959485150544615e-05 -0.01167866099606924 -0.35497052485810326\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005961256809724201\n",
      "count, Q error, E[R], E[a]\n",
      "13 7.472255908913304e-05 -0.011678660996130668 -0.35497136229065496\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00016053766336254663\n",
      "count, Q error, E[R], E[a]\n",
      "14 5.41452807653064e-05 -0.01167866106582 -0.3549712988700602\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00031276488821254647\n",
      "count, Q error, E[R], E[a]\n",
      "15 6.687633078273236e-05 -0.01167866106637018 -0.3549712909271021\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00015062002392329072\n",
      "count, Q error, E[R], E[a]\n",
      "16 6.544322707983155e-05 -0.01167866106646562 -0.354971282314659\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00033311382904918966\n",
      "count, Q error, E[R], E[a]\n",
      "17 6.523873618327615e-05 -0.011678661066467234 -0.35497128231450054\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00018674790527844316\n",
      "count, Q error, E[R], E[a]\n",
      "18 6.76083680479484e-05 -0.01167866106646724 -0.35497128231450054\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00018674790527844316\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0 -0.01167866106646724 -0.35497128231450054\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001441185474560322\n",
      "count, Q error, E[R], E[a]\n",
      "0 4.669393104405669 -0.011687310630057382 -0.35487227402327415\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006289413103252635\n",
      "count, Q error, E[R], E[a]\n",
      "1 6.639737607938756e-05 -0.011687314834541261 -0.3540818467741009\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0003581467746700468\n",
      "count, Q error, E[R], E[a]\n",
      "2 9.24819286156269e-05 -0.011687360369520894 -0.35371286235730265\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001182127367217915\n",
      "count, Q error, E[R], E[a]\n",
      "3 9.343580083548758e-05 -0.011687386018812905 -0.3526816389751891\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001974165415147953\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00011108163851836702 -0.011687425748967318 -0.35147828519870544\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0026110101191450753\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0001619275974808313 -0.01168746016440444 -0.35130289818084887\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0033611060572707767\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0005054695779136172 -0.011687509138487871 -0.3516468277933372\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00020056378426257156\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.00028841138590891515 -0.011687529693699574 -0.3514405981898095\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007295647280195757\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.00013063959653639444 -0.01168754787728933 -0.3511526523896687\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001774950494159159\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0001249469304586094 -0.01168756796851682 -0.3510686269837977\n",
      "residual error: ||r||=||Sw-M||\n",
      "9.981981636561304e-05\n",
      "count, Q error, E[R], E[a]\n",
      "10 3.25890667156004e-05 -0.011687573347387943 -0.35110917727638546\n",
      "residual error: ||r||=||Sw-M||\n",
      "3.0446678037796932e-05\n",
      "count, Q error, E[R], E[a]\n",
      "11 8.956862997443937e-06 -0.011687574103592635 -0.3511109558571497\n",
      "residual error: ||r||=||Sw-M||\n",
      "4.918637920921381e-05\n",
      "count, Q error, E[R], E[a]\n",
      "12 7.405688179171849e-06 -0.011687574230887164 -0.3511109558571497\n",
      "residual error: ||r||=||Sw-M||\n",
      "4.918637920921381e-05\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0 -0.011687574230887164 -0.3511109558571497\n",
      "residual error: ||r||=||Sw-M||\n",
      "6.471093117213249e-05\n",
      "count, Q error, E[R], E[a]\n",
      "0 5.204658092497737 -0.012001132724854077 -0.3624788510538407\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003061860992416234\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0003918948247324692 -0.01201112216690024 -0.36253063474434405\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.000313657178601524\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00035275285762280596 -0.012011160595254004 -0.3625360744482609\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001133220417208432\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0001816581153346028 -0.012011164688099353 -0.3625452987877564\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005209599318511464\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00017577301567632696 -0.012011171493686534 -0.36259243764044674\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00139824156458403\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0002055366269098944 -0.012011202219392114 -0.3627370732001991\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06266867607694268\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.006479717380779541 -0.012011296784315725 -0.3636050833378707\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02285728328584332\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.00799011985342936 -0.012011738607997707 -0.365129550972126\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0034855774988162007\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.002208497351720538 -0.012012683447124146 -0.3770274595717392\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.006172914176806322\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0004484213761799783 -0.012018013514194273 -0.3814672471910958\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003985452955231318\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0005770856121960021 -0.012019375308428896 -0.3849337362342095\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00179866484927492\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.000355165158371407 -0.012020294047023164 -0.387506033623103\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0214608880407109\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.0021163868083736125 -0.012020768859565262 -0.3890688477488742\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016130710568622128\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0028442232379161216 -0.012020980911649822 -0.3893167126466234\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0186639278360587\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.0007222023571771346 -0.012021019415656534 -0.38947326739531696\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008842006069264004\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.002297044177304637 -0.012021026319103224 -0.38967836107444237\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006141915491978895\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0015664276907400125 -0.012021030759681568 -0.3896820741682542\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007939161406056048\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.0010579245187835606 -0.012021031674085777 -0.3897190531768845\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013982609126663968\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.0016694117845879174 -0.012021036229754851 -0.389669433015904\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011089060887528661\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0018274642997489585 -0.012021038279883945 -0.3896957745613886\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0540216409936864\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.005313954733513928 -0.012021038826789615 -0.38970561415562704\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004407964491948441\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.004670363949972873 -0.012021039593023131 -0.38979344185923337\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011218900255604326\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0011828366105477758 -0.012021040645444648 -0.38980819363191405\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016850944155493465\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.0015141743737858298 -0.012021040838763791 -0.3898495118660795\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.019913624750027028\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.0027023117320686342 -0.012021042535185728 -0.38985275436372807\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06871561187783479\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.004402302319069809 -0.012021043050104438 -0.38982994918205793\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05253078862810113\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.01006801556502428 -0.012021043400052205 -0.38982523109373984\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01595688119891457\n",
      "count, Q error, E[R], E[a]\n",
      "27 0.004733392259614937 -0.012021043514956567 -0.38987882619787095\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02699956936686663\n",
      "count, Q error, E[R], E[a]\n",
      "28 0.003220248029065206 -0.01202104653261668 -0.389872245570173\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015853414166425887\n",
      "count, Q error, E[R], E[a]\n",
      "29 0.0020250986533683615 -0.012021046584302557 -0.3899405732290734\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02049163615083346\n",
      "count, Q error, E[R], E[a]\n",
      "30 0.0026177860268524248 -0.012021048898196756 -0.3899405732290734\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02049163615083346\n",
      "count, Q error, E[R], E[a]\n",
      "31 0.0 -0.012021048898196756 -0.3899405732290734\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.031050023590136734\n",
      "count, Q error, E[R], E[a]\n",
      "0 5.729158190199461 -0.01173634167900631 -0.37564956907699776\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0013108552764299437\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.002749954341415956 -0.01174070205600415 -0.375613223678927\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005471133147175235\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0005439922253159226 -0.011740716760220003 -0.37507999558247607\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008800676374735771\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0006772034713852409 -0.01174088497748757 -0.37501100917939506\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012499064143086864\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0002592511254517793 -0.011740962097937478 -0.3743421396600933\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003680559562856925\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00042886154752185386 -0.011740998572479889 -0.37372903796146817\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009414150016936313\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0012079524702824894 -0.011741031721369942 -0.37026022128225045\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001747878894117974\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0009602468012733823 -0.011741295833497653 -0.3706002579483194\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016848817672887876\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.001316336425055089 -0.011741309962345053 -0.37058506434277116\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015160590843285993\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.000956146657464989 -0.011741311317817641 -0.37041653645390143\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00025717234257333234\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.001462731305947814 -0.011741329103217218 -0.3703237645338987\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0022972334023609346\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.00025039248370511583 -0.011741338886180046 -0.3703253307457294\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00258229609306947\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.00030753500842406234 -0.011741339142954409 -0.3703113234475568\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006696086767148287\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0002664439918962468 -0.011741339793541666 -0.3703049733103578\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0013045225840865485\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.00017679446853998998 -0.011741340432497723 -0.370259825858396\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0018467221963139526\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.00027833489633117257 -0.011741341620468845 -0.3702602778956736\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0016778628513899657\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0003283716703227816 -0.011741341642652347 -0.37027829653657846\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005879372631712595\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.00017299173572044618 -0.011741342180334862 -0.3702378368245038\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005938012201842467\n",
      "count, Q error, E[R], E[a]\n",
      "18 9.61214629968156e-05 -0.011741343167067647 -0.3701080120198337\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.043585322255296585\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0035900377691171163 -0.011741349915551298 -0.3701073305166364\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.021561744151291272\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0020803602715465525 -0.011741349984082152 -0.3701079429913383\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02483860278421806\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.004106479141407091 -0.011741349985208531 -0.3701159905494356\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.024436636610609127\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.00230908341440904 -0.01174135009017535 -0.3701159905494356\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.024436636610609127\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.0 -0.01174135009017535 -0.3701159905494356\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011195446988918199\n",
      "count, Q error, E[R], E[a]\n",
      "0 6.254396478863482 -0.01174897164339858 -0.37008930574831767\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013078742302833148\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0020079953485071154 -0.011748972689330667 -0.3700479578203817\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007457259518968628\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0016824538091213855 -0.01174897363131786 -0.37000606675131315\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0052291476291527195\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0004494291422212312 -0.01174897579491579 -0.3699637120251275\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0049947451264594\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0008956812410855457 -0.011748976404139742 -0.36990264984562443\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004640061962466927\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0007235515066857744 -0.011748978275011033 -0.36989365457738743\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008087433504918742\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0009769610605813936 -0.011748978352417786 -0.3698769088873584\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004079323687600874\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0009608673971298567 -0.011748978547107415 -0.3698227894026286\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007374337110774924\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0010983156301664734 -0.0117489790859616 -0.3698218863784669\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004670688488040706\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0008874305016655545 -0.011748979098777692 -0.36980792215528957\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015364545370134191\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0016471882508882272 -0.011748979171431464 -0.3698059539491418\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.00749303504932485\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0010565395451098633 -0.011748979189515793 -0.36981016402626826\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.047270877447966604\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.004762814453441336 -0.011748979641505444 -0.3697801833442634\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.014156545768144338\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.004904126217692795 -0.011748980586474295 -0.3697799964194008\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04557233916117103\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.00439648301571026 -0.011748980586632611 -0.3697790346283799\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03484250538865667\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.003997645268202197 -0.011748980601297724 -0.36977783397710673\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.022437541991603253\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0039003651877483735 -0.011748980622608977 -0.3697772851920632\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03638101889882653\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.005924887289270928 -0.011748980645696825 -0.369773234279554\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02300049603947855\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.0055717875570552204 -0.011748980663960282 -0.3697731335046128\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023651367787431182\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0014630686658239527 -0.011748980699535654 -0.3697723426495533\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013143799100671868\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0030465889551265675 -0.011748980718124554 -0.36977196910437815\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0224569081390165\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.0033614070711709787 -0.011748980723041718 -0.3697714690082671\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.032045967227311636\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0049078423571415255 -0.011748980723815979 -0.3697709639351923\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.019313116586586805\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.004426571605667803 -0.011748980725177199 -0.3697701490361112\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006679577657947414\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.002567344275679094 -0.011748980726937181 -0.3697708062435338\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010826837039858397\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.0016846571025299186 -0.011748980730000136 -0.36976939403410836\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.021995454131224678\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.002945889080625042 -0.011748980771059642 -0.369769147984067\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013188944981454983\n",
      "count, Q error, E[R], E[a]\n",
      "27 0.0033501297306326666 -0.01174898077489783 -0.3697700801141663\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011844074335176938\n",
      "count, Q error, E[R], E[a]\n",
      "28 0.00159695444227401 -0.011748980789392344 -0.3697703483071558\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010108920838687852\n",
      "count, Q error, E[R], E[a]\n",
      "29 0.0018541983672029211 -0.01174898079900598 -0.36977011476938937\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008017966247809788\n",
      "count, Q error, E[R], E[a]\n",
      "30 0.0016824193372532317 -0.01174898079984187 -0.36977050191246585\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016280660765366335\n",
      "count, Q error, E[R], E[a]\n",
      "31 0.0015208864823903032 -0.01174898080136808 -0.369770511032678\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015277773576208626\n",
      "count, Q error, E[R], E[a]\n",
      "32 0.002988642863346715 -0.011748980801554667 -0.36977052957132694\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.019492411862924625\n",
      "count, Q error, E[R], E[a]\n",
      "33 0.0031612560856154773 -0.01174898080196056 -0.36977075755963484\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012920039484688237\n",
      "count, Q error, E[R], E[a]\n",
      "34 0.0009658289629055 -0.011748980802903491 -0.3697721464376004\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.014342332054846684\n",
      "count, Q error, E[R], E[a]\n",
      "35 0.002679023604367898 -0.011748980811378193 -0.36977201557610273\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002223561286355984\n",
      "count, Q error, E[R], E[a]\n",
      "36 0.0012917472014211423 -0.011748980811760344 -0.3697617349675237\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0036108331639437817\n",
      "count, Q error, E[R], E[a]\n",
      "37 0.0008354089543209978 -0.011748980923484045 -0.369760202147085\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023817729482850956\n",
      "count, Q error, E[R], E[a]\n",
      "38 0.002575231840791715 -0.011748980944241932 -0.3697595768452358\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008152068553756832\n",
      "count, Q error, E[R], E[a]\n",
      "39 0.0027479074154373954 -0.011748980956498931 -0.3697595768452358\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008152068553756832\n",
      "count, Q error, E[R], E[a]\n",
      "40 0.0 -0.011748980956498931 -0.3697595768452358\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009513785171078848\n",
      "count, Q error, E[R], E[a]\n",
      "0 6.773976546174453 -0.01160631099938075 -0.3638207085640781\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007185099476275376\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.001079123048149345 -0.011607221733681332 -0.3591338210177409\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.000805368649161771\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00019737623777662635 -0.011607971534900518 -0.3493424542342725\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007980022223253116\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.00017532431317805682 -0.011608786856969313 -0.3546177143263111\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0004712602943563918\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00013759027770863754 -0.011609449460249274 -0.35468953087190846\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0024610982827636685\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00034167925642221013 -0.011609506506010071 -0.35461218709849435\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0002024731632399312\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.00032333413664488176 -0.011609514509871325 -0.35459077235892517\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00028725750015511217\n",
      "count, Q error, E[R], E[a]\n",
      "7 7.212020976301643e-05 -0.011609517947674957 -0.35459077235892517\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00028725750015511217\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0 -0.011609517947674957 -0.35459077235892517\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0037962105285492894\n",
      "count, Q error, E[R], E[a]\n",
      "0 7.280251112744075 -0.011376285107344277 -0.32908011822258504\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04099624800769506\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.004370859263035993 -0.011388443724285975 -0.3244858667388471\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001899533318970034\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0035088290810655976 -0.011388968533339575 -0.3213566121386665\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001048678913002464\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.00027380892615594946 -0.011390051353649325 -0.3212629274443056\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002712557543907619\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00037471040024768194 -0.01139018308047433 -0.322320002584777\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006055857348680074\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00026837288026628734 -0.011390365024331347 -0.32229289558707935\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00016645366914285481\n",
      "count, Q error, E[R], E[a]\n",
      "6 4.8410285065069185e-05 -0.011390365398436826 -0.3223002511870444\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.000506633468131972\n",
      "count, Q error, E[R], E[a]\n",
      "7 6.805993852446515e-05 -0.011390366688634372 -0.3223002511870444\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.000506633468131972\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0 -0.011390366688634372 -0.3223002511870444\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004145564957831059\n",
      "count, Q error, E[R], E[a]\n",
      "0 7.80402115107112 -0.01174828097682075 -0.354742640601802\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0022330312393824096\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0013440023006060782 -0.011769609068933143 -0.3597431291338035\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008366839452456751\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0003337971203799958 -0.011772349813425625 -0.3652428328500688\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010625746800502227\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.00017249928640680631 -0.011773300427159456 -0.365718910221426\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01402030874087078\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0011694837835836956 -0.011773513091674634 -0.36574749722766015\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004991628210507851\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0008788819548790759 -0.011773632815533699 -0.366251387107927\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006821339861929688\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0005311675803441647 -0.011773676304313495 -0.36622883579624216\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0006700346747248374\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0001360939733496008 -0.011773677846844603 -0.36620022476106734\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0009216345898634468\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0001854306788497363 -0.01177367814779948 -0.3661994007774589\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0009084439876788417\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00019275123940367103 -0.011773678245833075 -0.3662012221072945\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.0012721959980664264\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.00015203042695999654 -0.011773678334209293 -0.3662012221072945\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012721959980664264\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0 -0.011773678334209293 -0.3662012221072945\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0017921807907882077\n",
      "count, Q error, E[R], E[a]\n",
      "0 8.332516148374506 -0.011837453000980921 -0.36627963051973356\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0017486066373712033\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0004259392252052409 -0.011837459862743748 -0.3664737101198788\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005460292743729209\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0005314420737137597 -0.01183746599843404 -0.3669879346483974\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01798384086463106\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0013860989672343392 -0.011837483416762879 -0.36785168206604824\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0045364994794816794\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0013737754060978904 -0.01183750807251463 -0.3689124504243215\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004416126418799188\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0008241499362046799 -0.01183754286247619 -0.3691387222596213\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0018810286042575447\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.00026186988111684943 -0.011837601669356159 -0.36919904134837156\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0018264500583570226\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0002415473373454588 -0.011837602598632741 -0.3691921283847451\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002085301595529232\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0003898219243441464 -0.0118376026730066 -0.3695926602784573\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004271351912657102\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.000481889577012951 -0.011837626235555123 -0.36959126959287836\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0021268429013596045\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0004382670158595623 -0.011837626285586508 -0.3693950431499724\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005018608623243404\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0006124143213814595 -0.011837637593756061 -0.3699473529195842\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03746528428355995\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.003514305245926557 -0.011837655771540586 -0.3699473529195842\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03746528428355995\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0 -0.011837655771540586 -0.3699473529195842\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005330340885723756\n",
      "count, Q error, E[R], E[a]\n",
      "0 8.887193987867889 -0.012413630158422449 -0.38274157162387834\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0019053692339675353\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0012738241636069232 -0.012430760922478447 -0.3954150161024038\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006177271439752228\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0012151906780812685 -0.012443156576483143 -0.41698609192388003\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006355698215975075\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0014996757373668425 -0.012456502498526216 -0.41979021165809627\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011084996669070075\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0016209959313359416 -0.012457986420951566 -0.4261414049581933\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0020648050986493667\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0010883554753834748 -0.01245885430520454 -0.427517256126255\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013925541136093464\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0014502641432124527 -0.012459099348834539 -0.4287294431432142\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01618286731824348\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0012304203881260579 -0.012459212986015341 -0.4287085983004523\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.030615851507750567\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.003370041837508836 -0.012459221396085638 -0.42881223764575827\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023945495104545484\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0015830703234684953 -0.012459238639718212 -0.42883418097666093\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02021589365322659\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0036119769375329304 -0.012459248564492306 -0.428861801460005\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.038506868789926395\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.005264090573052015 -0.01245927051320519 -0.4288790710038072\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.028774571522787812\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.00581107137020689 -0.012459271543913304 -0.42872016281588815\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09833423848608128\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.006560070250694943 -0.01245927447767219 -0.4286953173950884\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04334774976715288\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.011298366374091928 -0.012459275494857102 -0.42869540918846333\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05437346744917631\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.008913115088039788 -0.012459275494899228 -0.42872327436520696\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.039823853356875306\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.005428374093242823 -0.012459276436760348 -0.4286921196900932\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07089292166939638\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.009407616987744269 -0.01245927710696963 -0.42864817463051474\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.060207232321076797\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.006365551092735522 -0.01245927879581721 -0.42863663980414557\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07854017148974654\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.011750214763601562 -0.012459279122489796 -0.42863373234858393\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07001045483856912\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.011878936256750341 -0.012459279178209461 -0.4286311166608454\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011189538115751307\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.006473105487233909 -0.012459279227643222 -0.42862888508709945\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06216673490293884\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0056650688644231785 -0.01245927939909901 -0.4286294261129375\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0373527943182719\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.005438999447711602 -0.012459279403223932 -0.4286193661778512\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0041564015698287915\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.003980374020907061 -0.01245927947524601 -0.4286255941949817\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01149010717711228\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.0014712608742854167 -0.012459279687277742 -0.42862504984887223\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07500351692215838\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.006393221037710597 -0.012459279722811988 -0.42862813344684897\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05835476932234252\n",
      "count, Q error, E[R], E[a]\n",
      "27 0.004467488530011773 -0.012459279784446501 -0.42862950403963307\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0930748950024884\n",
      "count, Q error, E[R], E[a]\n",
      "28 0.0037295956041506484 -0.01245927981385811 -0.4286289397825409\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.040324592426519326\n",
      "count, Q error, E[R], E[a]\n",
      "29 0.005940465116458717 -0.01245927982050432 -0.4286246559424368\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.021558324878156912\n",
      "count, Q error, E[R], E[a]\n",
      "30 0.005024554180164678 -0.012459279994423162 -0.42862373482262\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.029194739503800617\n",
      "count, Q error, E[R], E[a]\n",
      "31 0.002611862503827961 -0.012459280027657943 -0.4286160261432463\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.10919143525691022\n",
      "count, Q error, E[R], E[a]\n",
      "32 0.009291523123198989 -0.012459280214082404 -0.4286164474831202\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06034598980705585\n",
      "count, Q error, E[R], E[a]\n",
      "33 0.0049835097329785066 -0.01245928021531446 -0.42861464921402337\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04454305843597555\n",
      "count, Q error, E[R], E[a]\n",
      "34 0.008922962523235699 -0.012459280276801528 -0.4286034877662322\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.019373232332764445\n",
      "count, Q error, E[R], E[a]\n",
      "35 0.004547047685569107 -0.012459281153794135 -0.4286056659023277\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07321307052135309\n",
      "count, Q error, E[R], E[a]\n",
      "36 0.006179952641713105 -0.012459281164393734 -0.4286048878480665\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.051234804092911014\n",
      "count, Q error, E[R], E[a]\n",
      "37 0.010057440091210186 -0.012459281185805702 -0.4286047585207743\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06954823745920945\n",
      "count, Q error, E[R], E[a]\n",
      "38 0.008430843903192544 -0.01245928119266656 -0.4286091161173448\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015606472734636029\n",
      "count, Q error, E[R], E[a]\n",
      "39 0.007777065381291651 -0.012459281212926698 -0.42860877777860207\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01766355102974345\n",
      "count, Q error, E[R], E[a]\n",
      "40 0.002062420626248509 -0.01245928122317941 -0.428608386584796\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.04008766631206187\n",
      "count, Q error, E[R], E[a]\n",
      "41 0.0052778184225181265 -0.012459281236144757 -0.4286046092208785\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06900704830486307\n",
      "count, Q error, E[R], E[a]\n",
      "42 0.004084826704799995 -0.012459281242296661 -0.42861123444337706\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05416176892806265\n",
      "count, Q error, E[R], E[a]\n",
      "43 0.012325833697178731 -0.01245928129586761 -0.4286006294019119\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06480577199639663\n",
      "count, Q error, E[R], E[a]\n",
      "44 0.0062721070201966775 -0.01245928133606452 -0.42860005406067647\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.036336123035777226\n",
      "count, Q error, E[R], E[a]\n",
      "45 0.004175144687755017 -0.012459281338349048 -0.4285995774078498\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.025997355379725345\n",
      "count, Q error, E[R], E[a]\n",
      "46 0.004120599873522625 -0.01245928134073776 -0.42859658038723486\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.10329011905248627\n",
      "count, Q error, E[R], E[a]\n",
      "47 0.009082346146721923 -0.012459281530955393 -0.4285815863915416\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06370676095483724\n",
      "count, Q error, E[R], E[a]\n",
      "48 0.012137135912927567 -0.01245928185305687 -0.42858175627212447\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07317423956166663\n",
      "count, Q error, E[R], E[a]\n",
      "49 0.008315165449753328 -0.012459281854113964 -0.4285822229428704\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.10177547429600174\n",
      "count, Q error, E[R], E[a]\n",
      "50 0.0048288689803639906 -0.012459281857344521 -0.4285652733642921\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03269039310863535\n",
      "count, Q error, E[R], E[a]\n",
      "51 0.007736254875355257 -0.012459282226802933 -0.42852921439241776\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05926406998034678\n",
      "count, Q error, E[R], E[a]\n",
      "52 0.0072802183897966765 -0.012459283125324152 -0.4285305056294561\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04815057090405263\n",
      "count, Q error, E[R], E[a]\n",
      "53 0.0024773376131629926 -0.012459283129095144 -0.4285318621641133\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05596264169999232\n",
      "count, Q error, E[R], E[a]\n",
      "54 0.007319282443546311 -0.012459283154023953 -0.42854142147164487\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04835777848394945\n",
      "count, Q error, E[R], E[a]\n",
      "55 0.008002972640350964 -0.012459283314641367 -0.4285354954182539\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06611261274170624\n",
      "count, Q error, E[R], E[a]\n",
      "56 0.006181068596713414 -0.012459283474867766 -0.42853861780553465\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05856162255590294\n",
      "count, Q error, E[R], E[a]\n",
      "57 0.011360319165909433 -0.01245928370470822 -0.4285364011043383\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05970184033831308\n",
      "count, Q error, E[R], E[a]\n",
      "58 0.009561319359388023 -0.01245928373802283 -0.4285351655389435\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015074197648063658\n",
      "count, Q error, E[R], E[a]\n",
      "59 0.005840710366069936 -0.012459283748247686 -0.4285406978386485\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03176408479204195\n",
      "count, Q error, E[R], E[a]\n",
      "60 0.004300272098220983 -0.012459283886378727 -0.4285410601127916\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.037004005000397515\n",
      "count, Q error, E[R], E[a]\n",
      "61 0.0036094881050108044 -0.012459283891276438 -0.4285396470194917\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05423219945856842\n",
      "count, Q error, E[R], E[a]\n",
      "62 0.006878086939039917 -0.012459283894684734 -0.42854088576226973\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04901986501199109\n",
      "count, Q error, E[R], E[a]\n",
      "63 0.0035356064108699207 -0.012459283940174377 -0.42852005693399264\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.040193901656537356\n",
      "count, Q error, E[R], E[a]\n",
      "64 0.0029418454444967417 -0.012459284608173167 -0.4285224252593786\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03637606921576314\n",
      "count, Q error, E[R], E[a]\n",
      "65 0.0058456605570375445 -0.012459285018772689 -0.4285318340960698\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012398478821928998\n",
      "count, Q error, E[R], E[a]\n",
      "66 0.003271747846424311 -0.012459285130613796 -0.4285318340960698\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012398478821928998\n",
      "count, Q error, E[R], E[a]\n",
      "67 0.0 -0.012459285130613796 -0.4285318340960698\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06960855871835565\n",
      "count, Q error, E[R], E[a]\n",
      "0 9.3881815639543 -0.011238965278072284 -0.41548057094478896\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002659788763550607\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.006711814997889813 -0.011269899909263841 -0.3896346965944493\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.032086559701017606\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.004955453602009779 -0.011324658694199439 -0.3478671053706869\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0005225959451118483\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0020931271976019 -0.01134985725538975 -0.3376976707041455\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007041151662470527\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0012235586462648917 -0.011367136848164273 -0.324213134929145\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009414742764482575\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0016740873430537715 -0.011381800611761313 -0.3235655799335293\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00038889266276956064\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0009003694817523474 -0.011381889132827694 -0.32348210261678845\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00185253468902396\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.00022336201019775858 -0.011381944324101063 -0.3235210906067362\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0019081566216473307\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0004160594982982067 -0.011381954871990492 -0.32352754612601087\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0048364315253745386\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0005327344543555638 -0.011381956156432876 -0.3234676732805264\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0064154743437672196\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0003376818553819027 -0.011381957087427454 -0.3234671876794203\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005057286826964668\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0009535787191525723 -0.011381957149367706 -0.3234686272792393\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007383292351108039\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.0009630379509226971 -0.011381957183385907 -0.3234693573970603\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004696842917562618\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0006351005518571239 -0.011381957836465218 -0.32346961486731973\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0042211082739503\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.0006244078974511585 -0.011381957840802323 -0.3236446129294569\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0021124655541041896\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.0004857974344070736 -0.011381960087358785 -0.32362948154367827\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004126964276999853\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0004285470065383223 -0.011381960784654263 -0.32362549641433086\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0030232709390411562\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.0008057806432034524 -0.011381961142090748 -0.3237199489031059\n",
      "residual error: ||r||=||Sw-M||\n",
      "7.700303665859954e-05\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.00039489940294958753 -0.01138196197044346 -0.3237199489031059\n",
      "residual error: ||r||=||Sw-M||\n",
      "7.700303665859954e-05\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0 -0.01138196197044346 -0.3237199489031059\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004696270871686985\n",
      "count, Q error, E[R], E[a]\n",
      "0 9.902816912016455 -0.011340593163410805 -0.3211104866264197\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0013202522673602312\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.000573653753272518 -0.011340891278149532 -0.3165644021883194\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010767097270174605\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00015978856967631365 -0.01134132828248125 -0.3152006477203621\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010180683273660611\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0001931498128270981 -0.011341599706535047 -0.3152757737294915\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0018423547241484658\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.000324114662882032 -0.011341664828143642 -0.31526547714989933\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003951341417959008\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00045668930868532234 -0.011341668315282053 -0.3152619960949859\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0024812122216789703\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0004985110201646902 -0.011341669382457276 -0.3152596827900713\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0030234198126549085\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0007172792119172975 -0.011341669423721886 -0.31526268244291894\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010961151238325691\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.00045361859251745625 -0.01134166963147934 -0.31526268244291894\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010961151238325691\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0 -0.01134166963147934 -0.31526268244291894\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.00026387322526787816\n",
      "count, Q error, E[R], E[a]\n",
      "0 10.419628050548399 -0.011620696910209453 -0.3716455958388051\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.021156685624858815\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.002965342107136136 -0.011626710692908215 -0.36616213463209857\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015155568857376718\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.002621485907173079 -0.011626991663217956 -0.35816450635303404\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012315172347066328\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0009978449631800092 -0.01162929769037045 -0.3580253053447402\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00021876415509239185\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0013487793173708143 -0.011630702785904752 -0.348383145413062\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011850912710264316\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00030881448941034545 -0.011636345451800213 -0.3483321632808359\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004033193849067974\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0003006465162448669 -0.011636348425346804 -0.34832224345844903\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015100478985216044\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.00046435125858079046 -0.011636350345951027 -0.34836371845886355\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008339539882702342\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.00019583451905596253 -0.011636351148769654 -0.348365522066078\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012299001142401299\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00015790737504639348 -0.011636351301860819 -0.348365522066078\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012299001142401299\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0 -0.011636351301860819 -0.348365522066078\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001589406011915647\n",
      "count, Q error, E[R], E[a]\n",
      "0 10.943305962082821 -0.011761259579086223 -0.355235418909062\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08607084465794029\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.007459276442663286 -0.011763753479376238 -0.35689513130775363\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009509494693139666\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00799124308903991 -0.011764068287886882 -0.3579064011926798\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003668729493860455\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0013001406847691621 -0.011764250155324405 -0.35898590096300503\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00610567368977714\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0009807066058738893 -0.011764356487248225 -0.3653957462561281\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0019542589350717236\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0008304652546075832 -0.011764700011058575 -0.36556730373144125\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0016655974062252312\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.00036325618797786223 -0.011765124793558592 -0.36560911332365936\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0016320311434804594\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0003437327406176061 -0.011765135364793964 -0.36570277574998156\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013777340907823905\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0012591043866790504 -0.01176514817932425 -0.36570717542886677\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008100639286558733\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0008418296660524889 -0.01176514961348684 -0.365721272102095\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008039583517385148\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0007365710266977789 -0.011765149794578466 -0.36577064986563806\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013396417541625487\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0008130963521740314 -0.011765154424838633 -0.3657859474603171\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008522476143223354\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.0006833226346122785 -0.011765154595645234 -0.36579388338985835\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008256872475317081\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.001622423357345732 -0.011765154800237102 -0.3658016453005191\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00468214599060845\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.001254576937107907 -0.011765155031168407 -0.3658350070073899\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015587499272696322\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.0014807353675746694 -0.011765156768472566 -0.3658368106146044\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.034243912134197675\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.004967975787711204 -0.011765157170693314 -0.3658333306637654\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011826193150388797\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.004561030018250043 -0.011765157261048511 -0.3658749204118601\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002918650628968831\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.0019358744736273311 -0.011765158398274052 -0.36587212481313663\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0038638930411474363\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0006828225146723035 -0.011765158420271465 -0.3658941664090953\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006825416148283669\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.000858661077402677 -0.011765159164325219 -0.36586794161222325\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008262014108624236\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.0009591762238087145 -0.011765159335428115 -0.36586505479536946\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006953628776389655\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0006194295813478066 -0.011765159395091316 -0.3658552383411737\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0027656454013311065\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.000709627329033716 -0.011765159527799537 -0.3658610799863527\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007541386241675804\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.00047336655281936404 -0.011765159789583911 -0.3658610799863527\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007541386241675804\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.0 -0.011765159789583911 -0.3658610799863527\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009402160511101156\n",
      "count, Q error, E[R], E[a]\n",
      "0 11.46416099642412 -0.011735852831630627 -0.3658761395475299\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006622959058365255\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0014952694959627457 -0.011735853876812332 -0.36589813900914625\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00046003661725966616\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0008913070664834518 -0.011735854716419955 -0.36590286281183787\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0021500145443279295\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.00033257300347226107 -0.011735855418868244 -0.365916534915302\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008560943895019237\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00035174788465187857 -0.011735855736380196 -0.36592231261267466\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015079732345836046\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00027810283605674246 -0.0117358558414845 -0.3659226359047829\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0016484616760515265\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.00038714279381304697 -0.011735855869889221 -0.3659274539287336\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001790367209124087\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0003955598508014086 -0.011735855923219128 -0.3659274539287336\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001790367209124087\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0 -0.011735855923219128 -0.3659274539287336\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003375037855991289\n",
      "count, Q error, E[R], E[a]\n",
      "0 11.973996622955175 -0.011452115952958728 -0.3199099197360108\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01664108516374936\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0019571253532506597 -0.011467256163524411 -0.31694801607306355\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007010516565456114\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0014680901443526611 -0.011468110937919298 -0.31593364118301587\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002089352055510497\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0011361267179928703 -0.011468697656558578 -0.32947842869567523\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00043251326958121503\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00029858340021104784 -0.011472306147862217 -0.32776165547932984\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010516479444872572\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00016924604744968235 -0.011472460882054832 -0.32726534595093926\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004735748148557663\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0005301627011524594 -0.01147248689266429 -0.32718338161475313\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007048311966769148\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0005456182225967179 -0.011472490224437944 -0.3272146671719028\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003019568320218812\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0008162429903695816 -0.011472492264641577 -0.32701060212290395\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.000534627393298134\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00025092656760190206 -0.011472495470030947 -0.3269025249931731\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0010821963629063533\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.00017474223643524102 -0.011472497328870965 -0.3268753418830699\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007367168370816299\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.00016667235870479143 -0.011472498031129567 -0.3268442231539505\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.004085708836855624\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.0004181370579384515 -0.011472498920396864 -0.3268442231539505\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004085708836855624\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0 -0.011472498920396864 -0.3268442231539505\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008866055879786658\n",
      "count, Q error, E[R], E[a]\n",
      "0 12.50255068380611 -0.01186909527570144 -0.3466952201184785\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0031975336050839415\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0008970813666813193 -0.011896787768251971 -0.35435790707940273\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00033553780263443695\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0004025893246624678 -0.011905483933623803 -0.36894773305150463\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015184071822588184\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0018780014893557885 -0.011917052232930736 -0.3721175511879876\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013588105055668967\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0022693034884703317 -0.011918923864330907 -0.3803804650149716\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004384608880688808\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0015239953127887003 -0.011922325083407499 -0.3850498833373779\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0032264058517579544\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0006790412728768263 -0.011923907750385833 -0.39164779251381937\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.014244614554103736\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.001992398955170724 -0.011925212165047775 -0.39210195954831584\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03579275708547642\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.002731590094243896 -0.01192537462774867 -0.39226830846552846\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09490952274578689\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.006873507096924638 -0.011925403805276428 -0.3923573453058594\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.1407657474284113\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.016999320363186007 -0.011925409954366221 -0.39276441219344077\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.1329866657707116\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.007171090434300742 -0.011925445356677108 -0.3927622505815494\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08802250211226645\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.018025234932058234 -0.011925445408411013 -0.39291377360112983\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.11536477341505923\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.017268918112231663 -0.011925457107625657 -0.3930871390482951\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06000188351020486\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.014258851746749648 -0.01192548691930095 -0.393336605133091\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.024280361918923608\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.006247319344110228 -0.011925503062126173 -0.39344276145983054\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00823672960109041\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0032054607753299364 -0.011925513174281586 -0.3938924929151294\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02315662422216701\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.00252863201956435 -0.01192554344513429 -0.39392950081622\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04490696935508018\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.003134587042259774 -0.011925544149325123 -0.39392496392506143\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04914074484148757\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.008065150290859142 -0.011925545586843693 -0.39402523744460277\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009210327828812292\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.004970856417059571 -0.011925547651169639 -0.3941832337385976\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010574817109864767\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.00045410393672869594 -0.011925549498218757 -0.3942839921235882\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013087712604558606\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0021552690508055672 -0.011925552939415992 -0.39428796603607963\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.056426042662289885\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.004670758720544687 -0.011925556792760755 -0.3942874944269483\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023692189517287167\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.0036608661401611345 -0.011925557203679538 -0.39426018084844505\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.035000090469206005\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.004987284790501013 -0.01192555804060562 -0.39416905697928656\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05420055169042688\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.00816650466298914 -0.011925561170115595 -0.3941688643368849\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08621574535639566\n",
      "count, Q error, E[R], E[a]\n",
      "27 0.012271979921458794 -0.011925562773796337 -0.39423629124442044\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.019578359194019897\n",
      "count, Q error, E[R], E[a]\n",
      "28 0.008223221655866756 -0.011925564926734666 -0.39424123097657016\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02862063589248525\n",
      "count, Q error, E[R], E[a]\n",
      "29 0.0034079915027583666 -0.01192556498175322 -0.39423788966429635\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04729040521534737\n",
      "count, Q error, E[R], E[a]\n",
      "30 0.005067986286873664 -0.011925565025881128 -0.3942345944770867\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02477856783034476\n",
      "count, Q error, E[R], E[a]\n",
      "31 0.005399708789091485 -0.01192556530084899 -0.39423330096467674\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02554861873286748\n",
      "count, Q error, E[R], E[a]\n",
      "32 0.0032139755237937844 -0.011925565381873149 -0.3942480007551673\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02745816343925503\n",
      "count, Q error, E[R], E[a]\n",
      "33 0.005473613705605289 -0.011925565513585748 -0.39424070863520566\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.054802159996552025\n",
      "count, Q error, E[R], E[a]\n",
      "34 0.00576240842502441 -0.011925565594383524 -0.39433436284725426\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06981852267246987\n",
      "count, Q error, E[R], E[a]\n",
      "35 0.006725515036156652 -0.011925568139085086 -0.3943725758297063\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04418608819020645\n",
      "count, Q error, E[R], E[a]\n",
      "36 0.008377331874259854 -0.011925569598526689 -0.3943592179936668\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.23070039024715808\n",
      "count, Q error, E[R], E[a]\n",
      "37 0.015776065458881165 -0.011925569858512782 -0.3943602262244069\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07187130679789983\n",
      "count, Q error, E[R], E[a]\n",
      "38 0.017860109336505812 -0.011925569907157462 -0.39436984630652694\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06461537734704387\n",
      "count, Q error, E[R], E[a]\n",
      "39 0.0055954681281689045 -0.011925570408901458 -0.39439064253266354\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.11888727451908826\n",
      "count, Q error, E[R], E[a]\n",
      "40 0.016833656387233734 -0.011925570477760846 -0.3943966944612972\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.045750748366357355\n",
      "count, Q error, E[R], E[a]\n",
      "41 0.016409584245783895 -0.01192557267801687 -0.39439671020743083\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.1746707412275616\n",
      "count, Q error, E[R], E[a]\n",
      "42 0.013523526988375223 -0.011925572934084873 -0.39439581555453035\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.10223554929300252\n",
      "count, Q error, E[R], E[a]\n",
      "43 0.018753323461148108 -0.011925572935805349 -0.3944301233698037\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09598815366324591\n",
      "count, Q error, E[R], E[a]\n",
      "44 0.017727871374051463 -0.011925573908987535 -0.3944614293655446\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08382895685451895\n",
      "count, Q error, E[R], E[a]\n",
      "45 0.015371683092233109 -0.011925575071869986 -0.3944686774925674\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.10356073768557136\n",
      "count, Q error, E[R], E[a]\n",
      "46 0.012968407129631654 -0.01192557515979857 -0.39447040827994034\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08080276123719798\n",
      "count, Q error, E[R], E[a]\n",
      "47 0.01737629040770679 -0.011925575211769956 -0.39447117598866377\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.15516075790690248\n",
      "count, Q error, E[R], E[a]\n",
      "48 0.016669115090522782 -0.01192557545401205 -0.3944711749842578\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.16748283617087353\n",
      "count, Q error, E[R], E[a]\n",
      "49 0.026184360391622877 -0.011925575454015945 -0.3944722216809308\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04658615121676989\n",
      "count, Q error, E[R], E[a]\n",
      "50 0.013061540414366758 -0.011925575472722303 -0.3944689585502158\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09890078971625842\n",
      "count, Q error, E[R], E[a]\n",
      "51 0.01403703396306995 -0.01192557550145232 -0.39446304099815027\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.2792445431601429\n",
      "count, Q error, E[R], E[a]\n",
      "52 0.026077303865401035 -0.01192557555156881 -0.3944576563847379\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.18893598612976711\n",
      "count, Q error, E[R], E[a]\n",
      "53 0.009260468552517982 -0.011925575588547371 -0.3944588388599008\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08835885739573276\n",
      "count, Q error, E[R], E[a]\n",
      "54 0.018965403184840336 -0.011925575637686247 -0.39445868259228406\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.05471286829155239\n",
      "count, Q error, E[R], E[a]\n",
      "55 0.010943781819769469 -0.011925575639227975 -0.39447824437234863\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0588842876256086\n",
      "count, Q error, E[R], E[a]\n",
      "56 0.00858395211223116 -0.011925576606425594 -0.3945143250934387\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09684335125360995\n",
      "count, Q error, E[R], E[a]\n",
      "57 0.011080268646741784 -0.011925577021917187 -0.39451345625578266\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.12892422511282065\n",
      "count, Q error, E[R], E[a]\n",
      "58 0.010300750204058691 -0.011925577045208162 -0.3945154074746863\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.11888260718465336\n",
      "count, Q error, E[R], E[a]\n",
      "59 0.020316162236501543 -0.011925577083389146 -0.3945204301536637\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.028887968331434668\n",
      "count, Q error, E[R], E[a]\n",
      "60 0.011390168951226678 -0.011925577234461908 -0.3945311379753225\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02305223032138208\n",
      "count, Q error, E[R], E[a]\n",
      "61 0.0037959503579074218 -0.011925577463417375 -0.39453203214173305\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.05140558268649312\n",
      "count, Q error, E[R], E[a]\n",
      "62 0.004094919704841699 -0.011925577511488164 -0.3945338517520632\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04064826333054726\n",
      "count, Q error, E[R], E[a]\n",
      "63 0.007017463654345812 -0.011925577516070141 -0.3945338977709156\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.024766388917051293\n",
      "count, Q error, E[R], E[a]\n",
      "64 0.0019102152506621436 -0.011925577516317062 -0.3945560325978706\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.11347521768286059\n",
      "count, Q error, E[R], E[a]\n",
      "65 0.01055178591078266 -0.01192557944862806 -0.39455723811771165\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0733641842073572\n",
      "count, Q error, E[R], E[a]\n",
      "66 0.014378658345032288 -0.011925579456638183 -0.3945555460280317\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06306860994494096\n",
      "count, Q error, E[R], E[a]\n",
      "67 0.012218134928503807 -0.011925579475098754 -0.39455777723610036\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.022096516743257806\n",
      "count, Q error, E[R], E[a]\n",
      "68 0.01070325294780517 -0.011925579559196637 -0.3945580995189389\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04016115431836392\n",
      "count, Q error, E[R], E[a]\n",
      "69 0.004271390197046134 -0.011925579559578351 -0.3945610952742056\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08771814105543636\n",
      "count, Q error, E[R], E[a]\n",
      "70 0.011308298452491589 -0.011925579587290428 -0.394561294568183\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.048874528175439316\n",
      "count, Q error, E[R], E[a]\n",
      "71 0.012068279136650113 -0.011925579587843323 -0.3945581894344957\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07758916870063659\n",
      "count, Q error, E[R], E[a]\n",
      "72 0.0035974768430709933 -0.011925579622931667 -0.3945581199035352\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0690023915936253\n",
      "count, Q error, E[R], E[a]\n",
      "73 0.004099899203492978 -0.011925579664467811 -0.39456014025720965\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.024605343491230166\n",
      "count, Q error, E[R], E[a]\n",
      "74 0.0057433041939369866 -0.011925579685037175 -0.39454707153108315\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03438566225818626\n",
      "count, Q error, E[R], E[a]\n",
      "75 0.005578352924430173 -0.011925579821800652 -0.39454452940282375\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.020624809793413384\n",
      "count, Q error, E[R], E[a]\n",
      "76 0.005008143348562814 -0.01192557989348706 -0.39454802482383394\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.027098963844852417\n",
      "count, Q error, E[R], E[a]\n",
      "77 0.005582499210244542 -0.011925579942376707 -0.3945527015192143\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09215554436275882\n",
      "count, Q error, E[R], E[a]\n",
      "78 0.009907668796239357 -0.01192558002483833 -0.3945539850446522\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.020381649426086307\n",
      "count, Q error, E[R], E[a]\n",
      "79 0.009776805440661717 -0.011925580037889209 -0.39455440437113876\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08442798925322213\n",
      "count, Q error, E[R], E[a]\n",
      "80 0.009739705099163345 -0.011925580041116572 -0.394555597643747\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0545166367758444\n",
      "count, Q error, E[R], E[a]\n",
      "81 0.011751345794597835 -0.011925580051017135 -0.3945557170055082\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.20117169500963686\n",
      "count, Q error, E[R], E[a]\n",
      "82 0.02174215571607166 -0.011925580051693713 -0.3945551462261417\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.08098492473703103\n",
      "count, Q error, E[R], E[a]\n",
      "83 0.0180533718349865 -0.011925580055148441 -0.3945553150592533\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0529929720222389\n",
      "count, Q error, E[R], E[a]\n",
      "84 0.006277685174814671 -0.011925580057238481 -0.3945555606151284\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03470741731774934\n",
      "count, Q error, E[R], E[a]\n",
      "85 0.005451803542680661 -0.011925580059754831 -0.39455544847786644\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06167675068262486\n",
      "count, Q error, E[R], E[a]\n",
      "86 0.006826568871699875 -0.011925580062282656 -0.3945560273704291\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06385555058373645\n",
      "count, Q error, E[R], E[a]\n",
      "87 0.010148209051747932 -0.011925580062473405 -0.394555116867179\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.07100320188572087\n",
      "count, Q error, E[R], E[a]\n",
      "88 0.01109341889639931 -0.011925580065696908 -0.39455487508272064\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.031523754883157715\n",
      "count, Q error, E[R], E[a]\n",
      "89 0.00723906411345669 -0.01192558007011693 -0.39455453316697114\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04503957183155387\n",
      "count, Q error, E[R], E[a]\n",
      "90 0.00587685602807719 -0.011925580070505117 -0.3945513422676629\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.06908927794682344\n",
      "count, Q error, E[R], E[a]\n",
      "91 0.011705915487599097 -0.011925580105110701 -0.3945518217439309\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01889711850625522\n",
      "count, Q error, E[R], E[a]\n",
      "92 0.008328155097031678 -0.011925580114461199 -0.39455212038906556\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.11241209583340926\n",
      "count, Q error, E[R], E[a]\n",
      "93 0.00969954402859848 -0.011925580115249143 -0.3945522344325608\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0495232386472013\n",
      "count, Q error, E[R], E[a]\n",
      "94 0.009287296036385694 -0.011925580116290722 -0.39455266265157224\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02544602343230635\n",
      "count, Q error, E[R], E[a]\n",
      "95 0.008750230819121789 -0.01192558012395694 -0.3945530307438425\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.10324858471229387\n",
      "count, Q error, E[R], E[a]\n",
      "96 0.01315406777898894 -0.01192558012817608 -0.3945529218240229\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.027303552044287905\n",
      "count, Q error, E[R], E[a]\n",
      "97 0.011672247729800914 -0.011925580129141071 -0.39455316636586246\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.20754830781370023\n",
      "count, Q error, E[R], E[a]\n",
      "98 0.016382526951902638 -0.011925580130495998 -0.3945541168484321\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04557847536612625\n",
      "count, Q error, E[R], E[a]\n",
      "99 0.021823564400390353 -0.011925580140833726 -0.39455419038624256\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.12722275813704872\n",
      "count, Q error, E[R], E[a]\n",
      "0 13.016063706951176 -0.011631736911082014 -0.3716634927149855\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004975137032865014\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.01182074152229027 -0.01165232459649585 -0.3594723050867823\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0020714931190171063\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.00038196919505578523 -0.011656943761084606 -0.34775716120644223\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0031305742362743093\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.000465859764262361 -0.011661142402539518 -0.34886265438104724\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0018203469633218574\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00020186458848993056 -0.011661150657558976 -0.3483913923087559\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0004240495833685194\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.00017225150538111692 -0.011661220479574609 -0.34817277016446646\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02260670609313784\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0018173439324255195 -0.011661247825131 -0.348129484079113\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.018960429501016587\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.0011412642505660654 -0.01166126002242471 -0.34816711245226883\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005885557714823534\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0016880484301205947 -0.011661261779324718 -0.3481670111587944\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.017200764714054243\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0017369667149515354 -0.01166126178682997 -0.34816711058809563\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012940773084945314\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.001122608372070077 -0.011661261786887003 -0.3481660409727767\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.040230554640892535\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0036778946984985946 -0.011661261800666225 -0.34815750629793407\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.02302176175289748\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.006130612855068992 -0.011661261819056076 -0.34815750629793407\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02302176175289748\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0 -0.011661261819056076 -0.34815750629793407\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0002346830365884488\n",
      "count, Q error, E[R], E[a]\n",
      "0 13.527103406924725 -0.011204850188654015 -0.32663733704257897\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.09115326419085323\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.011869580262263249 -0.011221897243633401 -0.32441135184568626\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.020057867021837743\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.011209507060540372 -0.011222707304692449 -0.3228188155243424\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008347183492362555\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0022000406148596136 -0.011223320826595742 -0.3164194070162801\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0040704169874957235\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0009802859580075886 -0.01122517195899621 -0.3095521655547857\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003054514905782517\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0005926817166430833 -0.011226065921361357 -0.30814394129276423\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0008990270673985928\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.00027774354758038436 -0.011226454316429 -0.3065170494138513\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.033903673016849295\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.003020243113299165 -0.011226941373058966 -0.3064381217441512\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03341649081347603\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0060103359286532805 -0.011226943092364671 -0.3064064011674235\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02544667449845901\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.00449484138572577 -0.011226943930078186 -0.306415962325686\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023124200293827387\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0037274920028872254 -0.011226944389420714 -0.3064627825571828\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0166693380009707\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.002057484734899784 -0.011226946854762268 -0.3065725993458279\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011168377241364949\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.001836861980047732 -0.011226948595082747 -0.30651847580638936\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010805685131110812\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.0012117706684062364 -0.011226949832419293 -0.3066407492173985\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016576952394949794\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.002346736092132145 -0.01122695438781869 -0.306733184322462\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.030301624779389375\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.0037427651691634735 -0.011226957308709625 -0.3068542891602749\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007226601990756146\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0031550412548400444 -0.01122695903135175 -0.3069431527370582\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007815120084648965\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.001013070046154886 -0.01122696149232103 -0.3069492704630936\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007285935452011224\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.0015361930583027055 -0.011226961893670376 -0.3068725087142987\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009209222242080343\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0014408658987547635 -0.011226966416361122 -0.30693837093176707\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011462176751903223\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0010395946939435819 -0.011226967138895212 -0.30692118339785424\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.022998635091135554\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.002134306246932597 -0.011226967820829756 -0.306911364432876\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015652692465373718\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.002646360250956059 -0.01122696851710321 -0.30694402112732044\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.028649732591427807\n",
      "count, Q error, E[R], E[a]\n",
      "23 0.0037496236772879433 -0.011226969393334172 -0.3069421820979321\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006450329041328798\n",
      "count, Q error, E[R], E[a]\n",
      "24 0.002363941401000764 -0.011226969890146734 -0.30694845538102966\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015769427276425947\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.0023323112597999846 -0.011226969968745792 -0.30702437913137315\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.029440531499013253\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.004257713561628498 -0.011226972976562173 -0.3070251898726266\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008395638149941206\n",
      "count, Q error, E[R], E[a]\n",
      "27 0.00271116075306556 -0.01122697303540141 -0.3070054827479728\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01147356767553559\n",
      "count, Q error, E[R], E[a]\n",
      "28 0.0015428178836556531 -0.01122697335350005 -0.30700556401930007\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009528435282874935\n",
      "count, Q error, E[R], E[a]\n",
      "29 0.0019421810648158296 -0.011226973354231088 -0.3070029879161666\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01595543198890562\n",
      "count, Q error, E[R], E[a]\n",
      "30 0.0016168103505616023 -0.011226973396207917 -0.3070030831277262\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.02321442649092166\n",
      "count, Q error, E[R], E[a]\n",
      "31 0.00401499446442415 -0.011226973404232262 -0.3070002059796229\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.04277732096910268\n",
      "count, Q error, E[R], E[a]\n",
      "32 0.0035710791951435944 -0.011226973435135098 -0.3070047839525057\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.03306316852882835\n",
      "count, Q error, E[R], E[a]\n",
      "33 0.002779569307764876 -0.011226973556862519 -0.3070228800168278\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009107395871715815\n",
      "count, Q error, E[R], E[a]\n",
      "34 0.0024366709289952897 -0.011226974710982796 -0.3070246761373076\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00772392022646882\n",
      "count, Q error, E[R], E[a]\n",
      "35 0.0005508664761286992 -0.011226974874849728 -0.3070563459413954\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009425593539700797\n",
      "count, Q error, E[R], E[a]\n",
      "36 0.0017139950349082825 -0.011226975233691705 -0.30698482346685274\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.026944936901853594\n",
      "count, Q error, E[R], E[a]\n",
      "37 0.0019543216649361432 -0.011226976497623262 -0.30697466522588135\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.022191760215115142\n",
      "count, Q error, E[R], E[a]\n",
      "38 0.004230819392969653 -0.01122697661448915 -0.3069761009447828\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.020568982464859727\n",
      "count, Q error, E[R], E[a]\n",
      "39 0.003984800279010482 -0.011226976640018541 -0.3069850233441283\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008909927370406705\n",
      "count, Q error, E[R], E[a]\n",
      "40 0.0027336401387208706 -0.011226976910731481 -0.306980936906541\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01263069816034291\n",
      "count, Q error, E[R], E[a]\n",
      "41 0.0017583517002812408 -0.011226977850282604 -0.3069752513589675\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005177146721201943\n",
      "count, Q error, E[R], E[a]\n",
      "42 0.002051436574469966 -0.011226977891016093 -0.3069754617386967\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013782030198880458\n",
      "count, Q error, E[R], E[a]\n",
      "43 0.0013234051328325288 -0.011226977891207024 -0.30697517050488693\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016524114634531774\n",
      "count, Q error, E[R], E[a]\n",
      "44 0.0014141859842923279 -0.01122697789607627 -0.3069746327739374\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.010887411305010706\n",
      "count, Q error, E[R], E[a]\n",
      "45 0.002461944730891071 -0.01122697793525662 -0.30705742685326537\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.022636335837679288\n",
      "count, Q error, E[R], E[a]\n",
      "46 0.0012091084608960873 -0.011226979701168819 -0.30706763445112584\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.1041762578563263\n",
      "count, Q error, E[R], E[a]\n",
      "47 0.006518356046702313 -0.011226979939509907 -0.30706831994178685\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.039529454483538146\n",
      "count, Q error, E[R], E[a]\n",
      "48 0.0057857609230744 -0.01122698017557034 -0.30706795961554606\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.042436440422127825\n",
      "count, Q error, E[R], E[a]\n",
      "49 0.006339231163960318 -0.011226980176103154 -0.30707128896102454\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013651665147953278\n",
      "count, Q error, E[R], E[a]\n",
      "50 0.002702753785219689 -0.011226980236697166 -0.30707128896102454\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013651665147953278\n",
      "count, Q error, E[R], E[a]\n",
      "51 0.0 -0.011226980236697166 -0.30707128896102454\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.026955415692042798\n",
      "count, Q error, E[R], E[a]\n",
      "0 14.035783131420697 -0.011412653682421102 -0.3177784174014414\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011015889616963442\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.00282488239967808 -0.011413658578523802 -0.3185367537727127\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005640447338691596\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0005912788093959043 -0.011414097621768007 -0.3182271779701688\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.0030217937222877813\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0005448984431293291 -0.011414160181476288 -0.3179954536413903\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0051248737803649795\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.0005889532450221928 -0.011414254554731983 -0.31809492638230324\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.015159419429737623\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0014138446162512664 -0.011414310547191848 -0.3181897272564861\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011010500025864204\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.002201695005894685 -0.01141431719305633 -0.3181654923444985\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008695895426009737\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.001616659290986908 -0.011414318848772812 -0.31817118755062557\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007795646820102296\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0013426356459753247 -0.011414320126931091 -0.31819719530912344\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0016361864431093565\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.0005300470931691719 -0.01141432105231421 -0.3182189847585488\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009015785755985176\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.0008077884528512393 -0.01141432138482199 -0.31821127598749926\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003357898161044873\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0012774793245330807 -0.011414321755184321 -0.31826130220412824\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007988459414063497\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.0006596976462009542 -0.011414325726595141 -0.3182475648027039\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005806375688832555\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.00151728419904308 -0.011414327134814124 -0.3182450848965501\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.014126969559319724\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.0009554364657587607 -0.011414327276199952 -0.31825636525862266\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008555626197325226\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.00188053310959758 -0.011414327658599411 -0.31825958799706494\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008779490264950578\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0003091020994774259 -0.011414327869980475 -0.31826101447397354\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002940001020649154\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.0010018111229178096 -0.011414327979108213 -0.3182537462279082\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0036575573422601582\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.0006029004816803422 -0.011414327990073133 -0.31832640718171795\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006179607716102806\n",
      "count, Q error, E[R], E[a]\n",
      "19 0.0005146485241504397 -0.011414329443537603 -0.3183525495124871\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0033323186274440532\n",
      "count, Q error, E[R], E[a]\n",
      "20 0.0003957207598587531 -0.011414330368233253 -0.31843455566160994\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0024936350558343564\n",
      "count, Q error, E[R], E[a]\n",
      "21 0.0001497710111391546 -0.011414331795808691 -0.31843455566160994\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0024936350558343564\n",
      "count, Q error, E[R], E[a]\n",
      "22 0.0 -0.011414331795808691 -0.31843455566160994\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.023506112962157807\n",
      "count, Q error, E[R], E[a]\n",
      "0 14.554784865473776 -0.011629518761607368 -0.33128130388076266\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0035061153565678206\n",
      "count, Q error, E[R], E[a]\n",
      "1 0.0020768552478746647 -0.011635849799207936 -0.3435640570535615\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005266167379108177\n",
      "count, Q error, E[R], E[a]\n",
      "2 0.0004927834592011512 -0.011636728895626945 -0.3400454546429867\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0012453805232954774\n",
      "count, Q error, E[R], E[a]\n",
      "3 0.0005585351817612203 -0.011638676305078676 -0.34185729290241285\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004253044251545138\n",
      "count, Q error, E[R], E[a]\n",
      "4 0.00040116805065230405 -0.011639043066015972 -0.3444786501228342\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.01100947668346586\n",
      "count, Q error, E[R], E[a]\n",
      "5 0.0012068734317038452 -0.011639357286617795 -0.34970944950714383\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001482766954785729\n",
      "count, Q error, E[R], E[a]\n",
      "6 0.0009245739123222121 -0.011639859352549445 -0.34487164343679194\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00033689968698913375\n",
      "count, Q error, E[R], E[a]\n",
      "7 0.00016164573303178366 -0.011640156830334997 -0.34543281969624107\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007152351585858688\n",
      "count, Q error, E[R], E[a]\n",
      "8 0.0005535830070250298 -0.01164020871500082 -0.34627150102892984\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002304168724599245\n",
      "count, Q error, E[R], E[a]\n",
      "9 0.000523666046233605 -0.011640217550213256 -0.3464521931396565\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007792394985217519\n",
      "count, Q error, E[R], E[a]\n",
      "10 0.00047430757232875317 -0.011640219289893894 -0.3465746882223135\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0025757363532892003\n",
      "count, Q error, E[R], E[a]\n",
      "11 0.0003976326465867197 -0.011640220707163772 -0.34680218229133836\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004483949245129078\n",
      "count, Q error, E[R], E[a]\n",
      "12 0.00020022388456541996 -0.011640223838593616 -0.34681374053395914\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002086701972851936\n",
      "count, Q error, E[R], E[a]\n",
      "13 0.00029225983877823346 -0.011640223883277536 -0.34703648744059484\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003935801168478991\n",
      "count, Q error, E[R], E[a]\n",
      "14 0.00018676498780620024 -0.011640224886630263 -0.3470033886703645\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.005810504343852184\n",
      "count, Q error, E[R], E[a]\n",
      "15 0.00015993236162440485 -0.011640225398115699 -0.3470047687178966\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0025515674690652027\n",
      "count, Q error, E[R], E[a]\n",
      "16 0.0003087185041370951 -0.011640225415252661 -0.3469283815599141\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.001506866891589267\n",
      "count, Q error, E[R], E[a]\n",
      "17 0.0002501166402097775 -0.011640226618198964 -0.34709821684547487\n",
      "residual error: ||r||=||Sw-M||\n",
      "9.112877021652668e-05\n",
      "count, Q error, E[R], E[a]\n",
      "18 0.00017210984101073478 -0.011640227293187382 -0.34709643766065396\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00015463210326209815\n",
      "count, Q error, E[R], E[a]\n",
      "19 1.7244981246992978e-05 -0.011640227322431897 -0.34711122695182806\n",
      "residual error: ||r||=||Sw-M||\n",
      "7.755129716257527e-05\n",
      "count, Q error, E[R], E[a]\n",
      "20 2.5075033168431434e-05 -0.011640227903315509 -0.3471111229437091\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00011144817621401486\n",
      "count, Q error, E[R], E[a]\n",
      "21 1.7037950652240823e-05 -0.011640227911151211 -0.3470939235362193\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.00010598289437024864\n",
      "count, Q error, E[R], E[a]\n",
      "22 1.3973654516067245e-05 -0.011640228482835503 -0.3470938727061009\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0002445046134685084\n",
      "count, Q error, E[R], E[a]\n",
      "23 1.749524386891396e-05 -0.011640228541490626 -0.34709504110246325\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001422188112473042\n",
      "count, Q error, E[R], E[a]\n",
      "24 2.5879536005016634e-05 -0.011640228561760856 -0.347016768347574\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003445621677887993\n",
      "count, Q error, E[R], E[a]\n",
      "25 0.00025958398388322215 -0.011640228695636025 -0.34707902345436\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0001609081686923461\n",
      "count, Q error, E[R], E[a]\n",
      "26 0.00026074727900472414 -0.011640229090592391 -0.3470955357819984\n",
      "residual error: ||r||=||Sw-M||\n",
      "7.472265726774806e-05\n",
      "count, Q error, E[R], E[a]\n",
      "27 2.6299819817140965e-05 -0.01164022929157613 -0.3470955361255137\n",
      "residual error: ||r||=||Sw-M||\n",
      "3.242634099649025e-05\n",
      "count, Q error, E[R], E[a]\n",
      "28 1.885246800462125e-05 -0.011640229291578773 -0.34690988569925446\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.008439663291746726\n",
      "count, Q error, E[R], E[a]\n",
      "29 0.0006146148199952002 -0.011640231853698065 -0.34691485534683\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0128930453063214\n",
      "count, Q error, E[R], E[a]\n",
      "30 0.00039028331242696413 -0.011640231876595712 -0.3469150416995341\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0007271425726111333\n",
      "count, Q error, E[R], E[a]\n",
      "31 0.0009341382281469881 -0.011640231877640718 -0.3469057887937135\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.004814104661420994\n",
      "count, Q error, E[R], E[a]\n",
      "32 0.000574576640815926 -0.011640232076413867 -0.3469050844336898\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011273376801995541\n",
      "count, Q error, E[R], E[a]\n",
      "33 0.0008589721281552971 -0.01164023208490785 -0.34689538581082185\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.011955840629778608\n",
      "count, Q error, E[R], E[a]\n",
      "34 0.00045455729411776174 -0.011640232289277444 -0.3468940115151869\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009130015270764975\n",
      "count, Q error, E[R], E[a]\n",
      "35 0.001175223711893568 -0.011640232639118167 -0.34689444929095814\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012056560238885418\n",
      "count, Q error, E[R], E[a]\n",
      "36 0.0009205469345497125 -0.011640232642131884 -0.34689607745860157\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "residual error: ||r||=||Sw-M||\n",
      "0.006266088720359085\n",
      "count, Q error, E[R], E[a]\n",
      "37 0.00045412033745516453 -0.011640232645172652 -0.3468960707498812\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0017384522893017743\n",
      "count, Q error, E[R], E[a]\n",
      "38 0.0005649731446330919 -0.011640232645192152 -0.34684012797026914\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.009211086761871868\n",
      "count, Q error, E[R], E[a]\n",
      "39 0.0005533269917614837 -0.011640232960259475 -0.34686384139528853\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.012604040699674824\n",
      "count, Q error, E[R], E[a]\n",
      "40 0.0015472236546703638 -0.011640233061687653 -0.34686389934278955\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.006530351728862175\n",
      "count, Q error, E[R], E[a]\n",
      "41 0.0004621094430197765 -0.011640233062524775 -0.3468370219368465\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.013621858599142701\n",
      "count, Q error, E[R], E[a]\n",
      "42 0.0014922609379753918 -0.011640233201454563 -0.34682991329624463\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0023834372408194676\n",
      "count, Q error, E[R], E[a]\n",
      "43 0.0009707258011971515 -0.011640233303354642 -0.3468124975645428\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015222240010456891\n",
      "count, Q error, E[R], E[a]\n",
      "44 0.0003479739735308842 -0.011640233382146236 -0.34680483348917246\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.002805223294881636\n",
      "count, Q error, E[R], E[a]\n",
      "45 0.0003488179333532927 -0.011640233401980692 -0.3468048103576081\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0015108430229876636\n",
      "count, Q error, E[R], E[a]\n",
      "46 0.0003247809182441166 -0.011640233402999082 -0.34681392451401283\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.007508824875867036\n",
      "count, Q error, E[R], E[a]\n",
      "47 0.0006005380797356704 -0.01164023341805442 -0.34681537086211206\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.016268881821364257\n",
      "count, Q error, E[R], E[a]\n",
      "48 0.0006228797729178676 -0.011640233446748917 -0.3468172380637544\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0011274037971638951\n",
      "count, Q error, E[R], E[a]\n",
      "49 0.0010932685054432013 -0.011640233474578331 -0.34681741104145974\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003331653335249294\n",
      "count, Q error, E[R], E[a]\n",
      "50 0.00020283598671037208 -0.011640233474844233 -0.3468167081454185\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.0070259027338364635\n",
      "count, Q error, E[R], E[a]\n",
      "51 0.0009805612459869249 -0.011640233475499326 -0.34681658937710674\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003333793045435443\n",
      "count, Q error, E[R], E[a]\n",
      "52 0.00102661898061935 -0.011640233475539805 -0.34681658937710674\n",
      "residual error: ||r||=||Sw-M||\n",
      "0.003333793045435443\n",
      "count, Q error, E[R], E[a]\n",
      "53 0.0 -0.011640233475539805 -0.34681658937710674\n"
     ]
    }
   ],
   "source": [
    "for t in np.arange(T - 2, 0, -1):\n",
    "    error = tau\n",
    "    q_prev = np.zeros(N_MC)  \n",
    "    ret = (S.loc[:, t+1] - S.loc[:, t]) / S.loc[:, t]\n",
    "    mu[t] = np.mean(ret)\n",
    "    var[t] = np.var(ret)\n",
    "    count = 0\n",
    "    max_iter = 100\n",
    "    x = X.values[:, t]\n",
    "    basis_x, basis_a = get_basis_functions(np.min(x)-10, np.max(x)+10, a_min, a_max, ncolloc, p)\n",
    "    x_grid = np.linspace(np.min(x), np.max(x), grid_size_x)\n",
    "    Phi_mat = np.array([[np.kron(basis_x(x_grid[i]), basis_a(a_grid[j])).reshape(num_basis, 1) \n",
    "                         for i in range(grid_size_x)] for j in range(grid_size_a)])[:, :, :, 0]   \n",
    "        \n",
    "    while (np.abs(error)>=tau) and (count<max_iter):\n",
    "       \n",
    "        R = negative_reward(mu[t], var[t], a, r, lmbda)\n",
    "        data_mat_t[t, :, :] = np.array([np.kron(basis_x(x[i]), basis_a(a[i])).reshape(num_basis, 1) for i in range(N_MC)])[:, :, 0]\n",
    "        \n",
    "        # Check partition of unity\n",
    "        h = np.dot(data_mat_t[t],np.ones(np.shape(data_mat_t[t])[1]))\n",
    "        if np.sum(h) != N_MC:\n",
    "            print(\"error: loss of partition of unity\")\n",
    "        S_t = function_S_vec(t, data_mat_t) \n",
    "        M_t = function_M_vec(t, Q_star, R, data_mat_t, gamma)\n",
    "        W_t = np.dot(np.linalg.pinv(S_t), M_t)\n",
    "       \n",
    "        # Compute Q_t matrix over small grid\n",
    "        # Phi_mat is the matrix for interpolating over the smaller x * a grid\n",
    "        Q_t = np.dot(Phi_mat, W_t) # gridded Q_t\n",
    "        \n",
    "        print(\"residual error: ||r||=||Sw-M||\")\n",
    "        print(np.linalg.norm(np.dot(S_t, W_t) - M_t))\n",
    "        \n",
    "        # Find the optimal action on the small grid\n",
    "        a_idx =  np.argmin(Q_t, axis=0)\n",
    "        # Need to interpolate over X \n",
    "        a_star_ = np.zeros(grid_size_x, dtype='float64')\n",
    "        \n",
    "        for j in range(grid_size_x):\n",
    "            a_star_[j] = a_grid[a_idx[j]]\n",
    "    \n",
    "        f = interp1d(x_grid, a_star_, kind='cubic')\n",
    "        a_prime = f(x)\n",
    "        \n",
    "        # Only update the actions along the paths where the neg. reward is lowered\n",
    "        R_prime = negative_reward(mu[t], var[t], a_prime, r, lmbda)\n",
    "        idx = np.where(R_prime>R)\n",
    "        a_prime[idx] = a[idx]\n",
    "        a = a_prime\n",
    "        a_mean.append(np.mean(a))\n",
    "        Q_star[:,t] = np.dot(data_mat_t[t, :, :], W_t)\n",
    "        error = np.linalg.norm(Q_star[:, t] - q_prev)\n",
    "        \n",
    "        q_prev = np.copy(Q_star[:, t])\n",
    "        \n",
    "        print('count, Q error, E[R], E[a]')\n",
    "        print(count, error, np.mean(R), np.mean(a))\n",
    "        count += 1 \n",
    "       \n",
    "    a_opt[:, t] = a  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "a_star_exact = []\n",
    "a_star_approx = []\n",
    "for t in range(1, T-1):\n",
    "    a_star_exact.append((mu[t] - r) / (2 * lmbda * var[t]))\n",
    "    a_star_approx.append(np.mean(a_opt[:, t]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(a_star_approx)\n",
    "plt.plot(a_star_exact, color='red')\n",
    "plt.xlabel('time')\n",
    "plt.ylabel('action');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "a_star_exact = (mu[t] - r) / (2 * lmbda * var[t])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.32253962186045404"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_star_exact"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.011318382170844328"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "negative_reward(mu[t], var[t], a_star_exact, r, lmbda)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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CdMXk3VIASMCpcHy0N/X8LfFu7jjnC789JJeCpZaQOESQGd2a8UrNw8hLfsoE6YvZl9egdcliXiqxOe4/73VvLUsjR+c342pY3oqWGoJhUuAjezaitduGcKenKNc9cIidh3I97okEU8Ulfj40TsreX9FOveO7s59F+mssNpE4RIEw7q05PXbh5FXUMRVLyxk497/6SBAJKIdLSxh8swUZq3cwwNjenLP6CSvS5IapnAJkoGJLXjnjhGYwTUvLGL5zoNelyRSI3Lzi7jxL0tYsDmLx797Bt8/t6vXJYkHFC5B1L11E967cySxjWK48eXSPzaRSJaZV8A1Ly5iTXouz18/iAlDE70uSTyicAmyDrENeffOkXRu1YjbZyxjzuo9lTcSCUM79h/hymkLST+Yz6u3DGHsGQlelyQeUrjUgLgm9Xhz8nAGdGjOD978lr8u2uF1SSIBtXZ3Lle9sJD8whLenDycM7u18rok8ZjCpYY0a1CXmbcO44Ke8Twyax2//ud6fD51vSPhb8HmLK57aTEx0VG8c8cI+rVv7nVJEgIULjWoQUw0L96UzMQRHZn+1XbufmMFBUUlXpclcspeX7KTW19bRvsWDXj/rpF0i2/sdUkSIhQuNSw6yvjld/rw00t68fG6vUyYvpj96i5GwozPV9oB5cN/X8uopFa89/2RJDRr4HVZEkIULh4wM24/uwvTbhjE+j15fPfPC9maddjrskSq5GhhCXe9voKXvtzGTcM7Mn1iMo3rBe26gxKmFC4eGtM3gTcnD+fIsWK+++eFLN52wOuSRCq071AB1720iE/W7+WRS3vz6Pg+1InW14j8L60VHhuU2IK/33UmLRuX/hbmr4t2oGvsSChatyeXK55fyObMw7x442BuO6uzunORk1K4hIDElg35+11ncnZSKx6ZtY4HP1jDsWId6JfQMWvlbq6ctpASn+PtO4ZzUZ82XpckIU7hEiKaNajLy5OGMOW8bry1LI0JL6lXZfFecYmPX81Zzz1vraRfu+Z8+IOzdKqxVInCJYRERxk/vrgHf75hEBsyDnHZc1/z7S71SSbeyD5SyKRXl/Ly16VXjvzb7cOIa1LP67IkTChcQtC4MxL44K6RxNSJ4toXF/P2sl06DiM1au3uXC579muW7TjI767qxy/H9yWmjr4upOq0toSoXglNmX33WQzrEssD76/h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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "a_ = np.arange(-1, 1, 0.01)\n",
    "plt.plot(a_, negative_reward(mu[t], var[t], a_, r, lmbda))\n",
    "plt.xlabel('S')\n",
    "plt.ylabel('R');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1, 1)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAdxklEQVR4nO3deZhU9Z3v8feni26gWWTpBpFFERFEY9B0iNtEUTFIFjTLXJyJIfPMPMTceG9MMsnF5D6TZO5zc53kZr8mBo0TcyfRO3GJJGOiiFvUuDQGWUQEgYQWpBtQ9qWX7/2jTkPRVG9W0V14Pq/nqafO+Z3fOecLVNWnzu+cOigiMDOz9Crr7QLMzKx3OQjMzFLOQWBmlnIOAjOzlHMQmJmlnIPAzCzlihIEkm6XVC9pRTvLJekHktZKWibp3JxlMyWtTpbNL0Y9ZmbWdcU6IvgZMLOD5VcCE5PHPODHAJIywM3J8inANZKmFKkmMzPrgqIEQUQ8AWzvoMts4OeR9QwwRNIoYBqwNiLWRcRB4K6kr5mZ9ZA+PbSf0cDGnPm6pC1f+3vybUDSPLJHEwwYMOBdkydPPjaVmpm9TS1ZsmRrRFS3be+pIFCetuig/ejGiAXAAoCampqora0tXnVmZikg6c/52nsqCOqAsTnzY4BNQEU77WZm1kN66vLRhcAnkquHzgN2RMRm4HlgoqTxkiqAOUlfMzPrIUU5IpB0J3AJUCWpDvgqUA4QEbcADwCzgLXAXuDvkmVNkq4HHgQywO0RsbIYNZmZWdcUJQgi4ppOlgfwmXaWPUA2KMzMrBf4l8VmZinnIDAzSzkHgZlZyjkIzMxSzkFgZpZyDgIzs5RzEJiZpZyDwMws5RwEZmYp5yAwM0s5B4GZWco5CMzMUs5BYGaWcg4CM7OUcxCYmaWcg8DMLOUcBGZmKecgMDNLuaIEgaSZklZLWitpfp7lX5S0NHmskNQsaViybIOk5cmy2mLUY2ZmXVfw/1ksKQPcDMwA6oDnJS2MiJda+0TEt4BvJf0/CHwuIrbnbGZ6RGwttBYzM+u+YhwRTAPWRsS6iDgI3AXM7qD/NcCdRdivmZkVQTGCYDSwMWe+Lmk7iqRKYCZwT05zAA9JWiJpXhHqMTOzbih4aAhQnrZop+8HgafaDAtdGBGbJI0AFkl6OSKeOGon2ZCYBzBu3LhCazYzs0QxjgjqgLE582OATe30nUObYaGI2JQ81wP3kR1qOkpELIiImoioqa6uLrhoMzPLKkYQPA9MlDReUgXZD/uFbTtJOgG4GLg/p22ApEGt08AVwIoi1GRmZl1U8NBQRDRJuh54EMgAt0fESknXJctvSbpeDTwUEXtyVh8J3CeptZZfRsTvC63JzMy6ThHtDeeXrpqamqit9U8OzMy6Q9KSiKhp2+5fFpuZpZyDwMws5RwEZmYp5yAwM0s5B4GZWco5CMzMUs5BYGaWcg4CM7OUcxCYmaWcg8DMLOUcBGZmKecgMDNLOQeBmVnKOQjMzFLOQWBmlnIOAjOzlHMQmJmlnIPAzCzlHARmZilXlCCQNFPSaklrJc3Ps/wSSTskLU0e/9TVdc3M7NjqU+gGJGWAm4EZQB3wvKSFEfFSm65/iIgPvMV1zczsGCnGEcE0YG1ErIuIg8BdwOweWNfMzIqgGEEwGtiYM1+XtLV1vqQXJf1O0pndXBdJ8yTVSqptaGgoQtlmZgbFCQLlaYs28y8AJ0fEO4EfAr/uxrrZxogFEVETETXV1dVvuVgzMztSMYKgDhibMz8G2JTbISJ2RsTuZPoBoFxSVVfWNTOzY6sYQfA8MFHSeEkVwBxgYW4HSSdKUjI9Ldnvtq6sa2Zmx1bBVw1FRJOk64EHgQxwe0SslHRdsvwW4KPApyU1AfuAORERQN51C63JzMy6TtnP4+NLTU1N1NbW9nYZZmbHFUlLIqKmbbt/WWxmlnIOAjOzlHMQmJmlnIPAzCzlHARmZinnIDAzSzkHgZlZyjkIzMxSzkFgZpZyDgIzs5RzEJiZpZyDwMws5RwEZmYp5yAwM0s5B4GZWco5CMzMUs5BYGaWcg4CM7OUK0oQSJopabWktZLm51n+t5KWJY+nJb0zZ9kGScslLZXk/3/SzKyHFfyf10vKADcDM4A64HlJCyPipZxu64GLI+INSVcCC4D35CyfHhFbC63FzMy6rxhHBNOAtRGxLiIOAncBs3M7RMTTEfFGMvsMMKYI+zUzsyIoRhCMBjbmzNclbe35e+B3OfMBPCRpiaR57a0kaZ6kWkm1DQ0NBRVsZmaHFTw0BChPW+TtKE0nGwQX5TRfGBGbJI0AFkl6OSKeOGqDEQvIDilRU1OTd/tmZtZ9xTgiqAPG5syPATa17STpbOA2YHZEbGttj4hNyXM9cB/ZoSYzM+shxQiC54GJksZLqgDmAAtzO0gaB9wLXBsRr+S0D5A0qHUauAJYUYSazMysiwoeGoqIJknXAw8CGeD2iFgp6bpk+S3APwHDgR9JAmiKiBpgJHBf0tYH+GVE/L7QmszMrOsUcfwNt9fU1ERtrX9yYGbWHZKWJF/Cj+BfFpuZpZyDwMws5RwEZmYp5yAwM0s5B4GZWco5CMzMUs5BYGaWcg4CM7OUcxCYmaWcg8DMLOUcBGZmKecgMDNLOQeBmVnKOQjMzFLOQWBmlnIOAjOzlHMQmJmlnIPAzCzlihIEkmZKWi1praT5eZZL0g+S5cskndvVdc3M7NgqOAgkZYCbgSuBKcA1kqa06XYlMDF5zAN+3I11zczsGCrGEcE0YG1ErIuIg8BdwOw2fWYDP4+sZ4AhkkZ1cV0zMzuGihEEo4GNOfN1SVtX+nRlXQAkzZNUK6m2oaGh4KLNzCyrGEGgPG3RxT5dWTfbGLEgImoioqa6urqbJZqZWXv6FGEbdcDYnPkxwKYu9qnowrpmZnYMFeOI4HlgoqTxkiqAOcDCNn0WAp9Irh46D9gREZu7uK6ZmR1DBR8RRESTpOuBB4EMcHtErJR0XbL8FuABYBawFtgL/F1H6xZak5mZdZ0i8g7Jl7Sampqora3t7TLMzI4rkpZERE3bdv+y2Mws5RwEZmYp5yAwM0s5B4GZWco5CMzMUs5BYGaWcg4CM7OUcxCYmaWcg8DMLOUcBGZmKecgMDNLOQeBmVnKOQjMzFLOQWBmlnIOAjOzlHMQmJmlnIPAzCzlHARmZilXUBBIGiZpkaQ1yfPQPH3GSnpU0ipJKyV9NmfZ1yS9Jmlp8phVSD1mZtZ9hR4RzAcWR8REYHEy31YT8IWIOAM4D/iMpCk5y78bEVOTxwMF1mNmZt1UaBDMBu5Ipu8ArmrbISI2R8QLyfQuYBUwusD9mplZkRQaBCMjYjNkP/CBER11lnQKcA7wbE7z9ZKWSbo939BSzrrzJNVKqm1oaCiwbDMza9VpEEh6WNKKPI/Z3dmRpIHAPcANEbEzaf4xMAGYCmwGvt3e+hGxICJqIqKmurq6O7s2M7MO9OmsQ0Rc3t4ySVskjYqIzZJGAfXt9CsnGwK/iIh7c7a9JafPrcBvu1O8mZkVrtChoYXA3GR6LnB/2w6SBPwUWBUR32mzbFTO7NXAigLrMTOzbio0CG4CZkhaA8xI5pF0kqTWK4AuBK4FLs1zmeg3JS2XtAyYDnyuwHrMzKybOh0a6khEbAMuy9O+CZiVTD8JqJ31ry1k/2Zm+RxsauHpV7eya38TEpRJlAlAh+YFKO8n02Gty4UYO6w/p40YdIwr7x0FBYGZFd9ftu3lqVe30hKBECMH9+WyM0YWbft7DjTxYt2bnDd+OGVlnXwSHof2NzYz+/88xeotu4q63b59ynjiS9OpyJQRcChIhA591ZWgsjxDn8zxddOGVAXBb5dt4rn12wGIgCCIyC6Ldtb565qxTB07pFv7qd+5n217DgJQPagvVQP7dtj/hhtuYOnSpV3e/tSpU/ne977XrZreru54egOLX66nakAF5Zkyrr/0NMYOq+ztsjrU3BL8qnYjr+/cT8ThDxMJGptb+NlTG9h1oOmIdZ778mWMGNyv4H03Nbcw8/tPsHH7Pv7lI+/gsjNG0tjcQlNzMKhfH4ZUVhS8j960v7GZbzywitVbdvGtj57NOeOG0BLZ93tzSxzxnm+J9t71HPW5sGHrHm74f0t5zzcWd1rD5BMH8bvP/hXq7HCjhKQqCJbV7WDhi5sOjVPpqMPDI//h3th7kL0HmvjenHM63O7+xmZee3MfE6oHsmNvIxd/6zH2NTYD2W8R919/IZNPHHyo/+Yd+7jz2b/wn6efRr/yTKd1b9m5nzf2NmZfuAGbMpt57ZankzCDSF617zp5KF95/5SON/Y28u/Pb+SrC1cycnBf1mXKqHtjH6dUDeDTl0zo7dI6tHjVFubfu7zd5ZNPHMS3//qdVA3syyMv13PjvcvZtudgUYKgftcBNm7fB8B/u2c5cLiOfuVlPPvlyzmhf3nB++kt/+uBVfz8j39mzrvH8rGasUXb7tSxQxjcvw9r63dTnilDtL73jnwPvvz6Lu5eUsfKTTs5a/QJRdv/sZaqIPjyrDP48qwzutz/6h89deibfUcWPLGO7yx6hXPGDaF+5wH2NTbz399/Bif0L+eLdy/jvhde48ZZh4Pgp39Yz21PrucHj6zNNvSbAefN6HAf7xgxkKGVFbQehZYp+w2y9dvkk2u3snTjm3xp5mTKj7PD0rfq8VcaGDO0P49/cTqZMjH1nx/itTf39nZZnVr00hb6l2dY+tUZ2WGGnA+TAPqU6dC3yZOHZ49u3tzbWJR9b9udfT1ffc5oRg/pz4jBfanIlLHxjb3c/OirLK/bwUUTq4qyr97w7PrtvPf0am76yNlF3/alk0dy6eSOh+i27T7A3Uvq+MAPn+Tu685nxKB+DB1QzsC+fUr6CCFVQdBdwwf05bU393Xab+nGN4HsG7iyIsMlk6r55AWn0CdTxq1/WMerDbuP6L/stR0A/NfLJkIEH3/x45RF8xF9tlWeyuZBZ1G151XG7V/FoH7lqAUYPgGu+J8w9OQj+t+zpI4v/OpFlm58k7FDKylTcsQjaGoOGptbaGxuYX9jC+u37uEv2/cSBE3NQUsEM8868YijllL13Prt/GFNA//p3WN5ZcsuJo0cRCYZ5x49pD91b3T+79Wb9jc288Dyzbz/7FH07ZM9GmzviBRgSP/sUM3q13fy3YdfYd/B7OvkgtOGc+OVXf9S02rr7gMAXHv+yZw77vAP+XfsbeTmR1/lufXbjpsg+NrClfzpL29wsDkOfSN/ZcsuLp3c4Q0OjqnhA/syfVI1j65u4KO3/PFQe0WmrNMT01116ydqeO/pxf1RrYOgA1UDK1hW92aHfSKCV7bs4v1nj+Lmvzn3qOWnVg084qRVRLD69V38zXvG8fkZp2cbd5wJLTljwk0HqVr3GJO2LgJl4NRLoKISWpph7SOw9jz41BNQNfHQKpNOzF7N8LGcF193PLq6ga9/6EwG9s0wZmhll4aselpzSzD39ufY19jMD5OjqUvPOPymHzeskuc3vMGOfY0lO7xR98Y+9hxs5qLTuvZhO6Qy++f42m9eokxw8enVrN+6h588vo7n1m/nS++bzPkThnd5/61BUDXgyPNWJ1SWc8mkan7x7F/47OWnHwrXUlW/az8/e3oDAJefMeJQvROqB3L1Ob17K7Mf/e272H2giRvvXc7JwysZMagvb+xtJNo9E9k9o4f2L8p2cjkIOjBsQAX1uw5w6bcfg8ieXGpqCZpbgsbmoLkle5Jt14Em/sulp+XdxjnjhvD7la/z+CsNnFo1gJ37G9mxr5EJ1QMPd/rYz45esXEfNO2HTN9sCLR6cyMs/QUMP3J/Z540mO/PmcruA02USbRE0NKSfemVZ8qSh6jIlDF2WCXjqwaQKRN9ysQtj7/K/37oFa66+SkATjqhH7//3HsZ3K9rH6YRwaOr63ntzf2UCVqSwdOAQzW0Dn+09j9yfQ69SdqepMtdtnbLbvY1NnPV1JO4YEIVElyeczXNP/zVqSx66Y9ceNMjDKksp195hvJMGRUZcUJlBadVD2RA38yhv4/LzhjB6SN79nLAhl3ZD+IRgzq+gKBVaxAAzL3gFL76wTNpam7hp0+u59Y/rOeaW59hcL8+ZMpEJmdIKfdjPPcSyD0Hs184hg08+qTw1eeM5rHVDTy7bhsXdDGoesuDK17PPt/w3kNfgkpF/4oM/Ssy3Da3prdL6TIHQQcuOq2KJ9duZczQ/sl1yKJPJvvhmSnLfrBmysSYoZV85Nwxebfx4XPHcNuT65l7+3NHtJ8+cmDe/oeU988+2hoyFi45+m7fkpg99a19E/rUxROYNn44uw80srwuOwRx/9JNXHveyR2u9+s/vcYPFq9h256D7NhXnDHszlwzbRzfuPqsvOOt7zp5KLfOreGxl+vZtb+JA00tHEyGxBp2HaB2w3b2NzZngwp4eNUW7vn0BT1Sd6v6XfsBGDG4a0HQPzkyGzusP1/94JkA9MmU8amLJzDrHaP4t2f+zIGmFppbguY4fEUMbYM1J3tPrqpkYN+j3/oXn17N0Mpyvnzfch7+/MUlfQnkIy/Xc2rVgM7fR9YlDoIOXHBaFQuvv6igbVQP6suj/3gJi1dt4WBTC5D9xnDBhNL5xlWeKWPa+GEATJ80gsdeqed//OYltu8+yClVlVRkyuiTXClRVnb4uulbHn+VfY3NfODsUUw5afChb+etJ7APnacg//XWwFFXcB25TEfMA50OWU2fNILpkzoeI25uCb6/eA0/fGQNDbsOUN3Fb+fF0HpEUD2wa1cASeLp+ZfmvQR57LBKbuzGxQ+dGVJZwU0fOZtP/d8lfOuh1fzjFZNK9sKDl1/fxXmnDi/pE7DHEwdBDxjYt89b/rbe0yTxs09O4wu/Wsp3H36l0/5ffN8kPjM9/7BYqcqUiSvPOpEfLF7Dw6u2cM20cT2279d37KdvnzIG9+/6W++kIcUfE27PFVNGcvU5o/nJ4+v4yePr6FdeRr/yDP3LM/QrzxwK97Lk17lwZIhn59uZzunV9vP7iNmche1td/OO/T0+rPd25iCwo5xQWc5tc9/Nlp372X2giYNN2XMhrT/Gab3UURJTRpX+lUb5TD5xEFUD+/L8hu09GgTrt+5hfNWAkv0mK4lvXP0Opo0fRv3OA+w+0Mj+xhb2Nzazv6mFlsheoRPJObPWH2sddngmt73tadLc80RxRHubfu2sc9nkEcw868Tu/vGsHQ4Ca9fIwf0o3o0NSoskppw0mBXJpbw95dWG3Uw5qbTDs39FpkfD0Xqfg8BSq+bkoXxnUQP/+tR6Ptz2ZP9R30yPvtKpg+5HXRkFsGNfI3/evvfofZn1MgeBpdZ1F0/gmXXb+PpvXuLrv3mpx/bbmz94MsvHQWCpVdGnjNs/+W4eebmezTv2H7W87Sh+hyc44ahx/3ynAYYNqDiu7kFj6eAgsFTrV55h1jtGdd7R7G2sNC8SNjOzHuMgMDNLuYKCQNIwSYskrUmeh7bTb0PyfxMvlVTb3fXNzOzYKfSIYD6wOCImAouT+fZMj4ipEZF7J6burG9mZsdAoUEwG7gjmb4DuKqH1zczswIVGgQjI2IzQPLc3gXSATwkaYmkeW9hfSTNk1QrqbahoaHAss3MrFWnl49KehjId1OPr3RjPxdGxCZJI4BFkl6OiCe6sT4RsQBYAFBTU1Oc/+HBzMw6D4KIuLy9ZZK2SBoVEZsljQLq29nGpuS5XtJ9wDTgCaBL65uZ2bFT6NDQQmBuMj0XuL9tB0kDJA1qnQauAFZ0dX0zMzu2Cg2Cm4AZktYAM5J5JJ0k6YGkz0jgSUkvAs8B/xERv+9ofTMz6zkF3WIiIrYBl+Vp3wTMSqbXAe/szvpmZtZz/MtiM7OUcxCYmaWcg8DMLOUcBGZmKecgMDNLOQeBmVnKOQjMzFLOQWBmlnIOAjOzlHMQmJmlnIPAzCzlHARmZinnIDAzSzkHgZlZyjkIzMxSzkFgZpZyDgIzs5RzEJiZpVxBQSBpmKRFktYkz0Pz9JkkaWnOY6ekG5JlX5P0Ws6yWYXUY2Zm3VfoEcF8YHFETAQWJ/NHiIjVETE1IqYC7wL2AvfldPlu6/KIeKDt+mZmdmwVGgSzgTuS6TuAqzrpfxnwakT8ucD9mplZkRQaBCMjYjNA8jyik/5zgDvbtF0vaZmk2/MNLZmZ2bHVaRBIeljSijyP2d3ZkaQK4EPAr3KafwxMAKYCm4Fvd7D+PEm1kmobGhq6s2szM+tAn846RMTl7S2TtEXSqIjYLGkUUN/Bpq4EXoiILTnbPjQt6Vbgtx3UsQBYAFBTUxOd1W1mZl1T6NDQQmBuMj0XuL+DvtfQZlgoCY9WVwMrCqzHzMy6qdAguAmYIWkNMCOZR9JJkg5dASSpMll+b5v1vylpuaRlwHTgcwXWY2Zm3dTp0FBHImIb2SuB2rZvAmblzO8Fhufpd20h+zczs8L5l8VmZinnIDAzSzkHgZlZyjkIzMxSzkFgZpZyDgIzs5RzEJiZpZyDwMws5RwEZmYp5yAwM0s5B4GZWco5CMzMUs5BYGaWcg4CM7OUcxCYmaWcg8DMLOUcBGZmKecgMDNLOQeBmVnKFRQEkj4maaWkFkk1HfSbKWm1pLWS5ue0D5O0SNKa5HloIfWYmVn3FXpEsAL4MPBEex0kZYCbgSuBKcA1kqYki+cDiyNiIrA4mTczsx5UUBBExKqIWN1Jt2nA2ohYFxEHgbuA2cmy2cAdyfQdwFWF1GNmZt3Xpwf2MRrYmDNfB7wnmR4ZEZsBImKzpBHtbUTSPGBeMrtbUmcB1J4qYOtbXLenHU+1wvFVr2s9do6netNW68n5GjsNAkkPAyfmWfSViLi/CztWnrbownpHrhCxAFjQ3fWOKkaqjYh2z2eUkuOpVji+6nWtx87xVK9rzeo0CCLi8gL3UQeMzZkfA2xKprdIGpUcDYwC6gvcl5mZdVNPXD76PDBR0nhJFcAcYGGybCEwN5meC3TlCMPMzIqo0MtHr5ZUB5wP/IekB5P2kyQ9ABARTcD1wIPAKuDfI2JlsombgBmS1gAzkvljreDhpR50PNUKx1e9rvXYOZ7qda2AIro9XG9mZm8j/mWxmVnKOQjMzFIuVUHQ3q0uerGe2yXVS1qR09bubTck3ZjUvlrS+3q41rGSHpW0KrmtyGdLtV5J/SQ9J+nFpNavl2qtOfvPSPqTpN8eB7VukLRc0lJJtaVcr6Qhku6W9HLy2j2/FGuVNCn5+2x97JR0Q4/VGhGpeAAZ4FXgVKACeBGY0ss1vRc4F1iR0/ZNYH4yPR/4l2R6SlJzX2B88mfJ9GCto4Bzk+lBwCtJTSVXL9nfrgxMpsuBZ4HzSrHWnJo/D/wS+G0pvw6SGjYAVW3aSrJesncs+IdkugIYUqq15tScAV4n++OvHqm1R/+Avfkge2XTgznzNwI3lkBdp3BkEKwGRiXTo4DV+eolexXW+b1Y9/1kr/Qq6XqBSuAFsr9mL8layf62ZjFwaU4QlGStyT7zBUHJ1QsMBtaTXBRTyrW2qe8K4KmerDVNQ0P5bnUxupdq6cgRt90AWm+7UTL1SzoFOIfsN+2SrDcZallK9keKiyKiZGsFvgd8CWjJaSvVWiF7Z4CHJC1Jbv0CpVnvqUAD8K/JsNttkgaUaK255gB3JtM9UmuagqAot7roRSVRv6SBwD3ADRGxs6Ouedp6rN6IaI6IqWS/bU+TdFYH3XutVkkfAOojYklXV8nT1tOvgwsj4lyydxT+jKT3dtC3N+vtQ3bo9ccRcQ6wh47vcNzrf7fJj24/BPyqs6552t5yrWkKgo5udVFKtiS326DNbTd6vX5J5WRD4BcRcW/SXLL1AkTEm8BjwExKs9YLgQ9J2kD2zryXSvq3Eq0VgIjYlDzXA/eRvcNwKdZbB9QlR4MAd5MNhlKstdWVwAsRsSWZ75Fa0xQEHd3qopS0d9uNhcAcSX0ljQcmAs/1VFGSBPwUWBUR3ynleiVVSxqSTPcHLgdeLsVaI+LGiBgTEaeQfU0+EhEfL8VaASQNkDSodZrsePaKUqw3Il4HNkqalDRdBrxUirXmuIbDw0KtNR37Wnv6REhvPoBZZK92eZXs3VN7u547gc1AI9mE/3tgONkTh2uS52E5/b+S1L4auLKHa72I7KHnMmBp8phVivUCZwN/SmpdAfxT0l5ytbap+xIOnywuyVrJjru/mDxWtr6PSrjeqUBt8lr4NTC0hGutBLYBJ+S09UitvsWEmVnKpWloyMzM8nAQmJmlnIPAzCzlHARmZinnIDAzSzkHgZlZyjkIzMxS7v8Dfj1QDNNuQlkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(a_mean)\n",
    "plt.plot(x_grid, a_star_)\n",
    "plt.plot(x_grid, np.ones(len(x_grid)) * a_star_exact, color='black')\n",
    "plt.ylim([-1, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "optimal action depends on lambda"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
